def createPolycone(part,solid,material,px,py,pz,rot,displayMode) : from GDMLObjects import GDMLPolycone, GDMLzplane, \ ViewProvider, ViewProviderExtension GDMLShared.trace("Create Polycone : ") GDMLShared.trace(solid.attrib) startphi = GDMLShared.getVal(solid,'startphi') deltaphi = GDMLShared.getVal(solid,'deltaphi') aunit = getText(solid,'aunit','rad') lunit = getText(solid,'lunit',"mm") #mypolycone=volObj.newObject("Part::FeaturePython","GDMLPolycone:"+getName(solid)) mypolycone=part.newObject("Part::FeaturePython","GDMLPolycone:"+getName(solid)) mypolycone.addExtension("App::OriginGroupExtensionPython", None) GDMLPolycone(mypolycone,startphi,deltaphi,aunit,lunit,material) ViewProviderExtension(mypolycone.ViewObject) #mypolycone.ViewObject.DisplayMode = "Shaded" GDMLShared.trace(solid.findall('zplane')) for zplane in solid.findall('zplane') : GDMLShared.trace(zplane) rmin = GDMLShared.getVal(zplane,'rmin') rmax = GDMLShared.getVal(zplane,'rmax') z = GDMLShared.getVal(zplane,'z') myzplane=FreeCAD.ActiveDocument.addObject('App::FeaturePython','zplane') mypolycone.addObject(myzplane) #myzplane=mypolycone.newObject('App::FeaturePython','zplane') GDMLzplane(myzplane,rmin,rmax,z) ViewProvider(myzplane) GDMLShared.trace("Position : "+str(px)+','+str(py)+','+str(pz)) base = FreeCAD.Vector(0,0,0) mypolycone.Placement = GDMLShared.processPlacement(base,rot) GDMLShared.trace(mypolycone.Placement.Rotation) # set ViewProvider before setDisplay setDisplayMode(mypolycone,displayMode) return mypolycone
def createTrap(part,solid,material,px,py,pz,rot,displayMode) : from GDMLObjects import GDMLTrap, ViewProvider GDMLShared.trace("CreateTrap : ") GDMLShared.trace(solid.attrib) z = GDMLShared.getVal(solid,'z') x1 = GDMLShared.getVal(solid,'x1') x2 = GDMLShared.getVal(solid,'x2') x3 = GDMLShared.getVal(solid,'x3') x4 = GDMLShared.getVal(solid,'x4') y1 = GDMLShared.getVal(solid,'y1') y2 = GDMLShared.getVal(solid,'y2') theta = GDMLShared.getVal(solid,'theta') phi = GDMLShared.getVal(solid,'phi') alpha = GDMLShared.getVal(solid,'alpah1') aunit = getText(solid,'aunit','rad') lunit = getText(solid,'lunit',"mm") #print z #mytrap=volObj.newObject("Part::FeaturePython","GDMLTrap:"+getName(solid)) mytrap=part.newObject("Part::FeaturePython","GDMLTrap:"+getName(solid)) GDMLTrap(mytrap,z,theta,phi,x1,x2,x3,x4,y1,y2,alpha,aunit,lunit,material) GDMLShared.trace("Position : "+str(px)+','+str(py)+','+str(pz)) base = FreeCAD.Vector(0,0,0) mytrap.Placement = GDMLShared.processPlacement(base,rot) GDMLShared.trace(mytrap.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(mytrap.ViewObject) setDisplayMode(mytrap,displayMode) return mytrap
def createCone(part, solid, material, px, py, pz, rot, displayMode): from GDMLObjects import GDMLCone, ViewProvider GDMLShared.trace("CreateCone : ") GDMLShared.trace(solid.attrib) rmin1 = GDMLShared.getVal(solid, 'rmin1') rmax1 = GDMLShared.getVal(solid, 'rmax1') rmin2 = GDMLShared.getVal(solid, 'rmin2') rmax2 = GDMLShared.getVal(solid, 'rmax2') z = GDMLShared.getVal(solid, 'z') startphi = GDMLShared.getVal(solid, 'startphi') deltaphi = GDMLShared.getVal(solid, 'deltaphi') aunit = getText(solid, 'aunit', 'rad') lunit = getText(solid, 'lunit', "mm") mycone = part.newObject("Part::FeaturePython", "GDMLCone:" + getName(solid)) GDMLCone(mycone,rmin1,rmax1,rmin2,rmax2,z, \ startphi,deltaphi,aunit,lunit,material) GDMLShared.trace("CreateCone : ") GDMLShared.trace("Position : " + str(px) + ',' + str(py) + ',' + str(pz)) base = FreeCAD.Vector(px, py, pz) mycone.Placement = GDMLShared.processPlacement(base, rot) GDMLShared.trace(mycone.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(mycone.ViewObject) setDisplayMode(mycone, displayMode) return (mycone)
def createTube(part,solid,material,px,py,pz,rot,displayMode) : from GDMLObjects import GDMLTube, ViewProvider GDMLShared.trace("CreateTube : ") GDMLShared.trace(solid.attrib) rmin = GDMLShared.getVal(solid,'rmin') rmax = GDMLShared.getVal(solid,'rmax') z = GDMLShared.getVal(solid,'z') startphi = GDMLShared.getVal(solid,'startphi') deltaphi = GDMLShared.getVal(solid,'deltaphi') aunit = getText(solid,'aunit','rad') lunit = getText(solid,'lunit',"mm") GDMLShared.trace(rmin) GDMLShared.trace(rmax) GDMLShared.trace(z) #mytube=volObj.newObject("Part::FeaturePython","GDMLTube:"+getName(solid)) mytube=part.newObject("Part::FeaturePython","GDMLTube:"+getName(solid)) GDMLTube(mytube,rmin,rmax,z,startphi,deltaphi,aunit,lunit,material) GDMLShared.trace("Position : "+str(px)+','+str(py)+','+str(pz)) base = FreeCAD.Vector(0,0,0) #base = FreeCAD.Vector(px,py,pz) mytube.Placement = GDMLShared.processPlacement(base,rot) GDMLShared.trace(mytube.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(mytube.ViewObject) setDisplayMode(mytube,displayMode) return mytube
def createXtru(part, solid, material, px, py, pz, rot, displayMode): from GDMLObjects import GDMLXtru, GDML2dVertex, GDMLSection, \ ViewProvider, ViewProviderExtension GDMLShared.trace("CreateXtru : ") #print(solid) #print(getName(solid)) myXtru = part.newObject("Part::FeaturePython", "GDMLXtru-" + getName(solid)) #myXtru.addExtension("App::OriginGroupExtensionPython", None) lunit = getText(solid, 'lunit', "mm") GDMLXtru(myXtru, lunit, material) ViewProviderExtension(myXtru.ViewObject) for vert2d in solid.findall('twoDimVertex'): x = GDMLShared.getVal(vert2d, 'x') y = GDMLShared.getVal(vert2d, 'y') my2dVert = FreeCAD.ActiveDocument.addObject('App::FeaturePython', 'GDML2DVertex') #myzplane=mypolycone.newObject('App::FeaturePython','zplane') GDML2dVertex(my2dVert, x, y) myXtru.addObject(my2dVert) ViewProvider(my2dVert) for section in solid.findall('section'): zOrder = GDMLShared.getVal(section, 'zOrder', 2) # Get Int zPosition = GDMLShared.getVal(section, 'zPosition', 2) # Get Int xOffset = GDMLShared.getVal(section, 'xOffset') yOffset = GDMLShared.getVal(section, 'yOffset') scalingFactor = GDMLShared.getVal(section, 'scalingFactor') mysection = FreeCAD.ActiveDocument.addObject('App::FeaturePython', 'GDMLSection') GDMLSection(mysection, zOrder, zPosition, xOffset, yOffset, scalingFactor) myXtru.addObject(mysection) ViewProvider(mysection) GDMLShared.trace("Position : " + str(px) + ',' + str(py) + ',' + str(pz)) base = FreeCAD.Vector(0, 0, 0) #base = FreeCAD.Vector(px,py,pz) myXtru.Placement = GDMLShared.processPlacement(base, rot) GDMLShared.trace(myXtru.Placement.Rotation) # Shape is still Null at this point #print("Xtru Shape : ") #print("Is Null : "+str(myXtru.Shape.isNull())) return (myXtru)
def createGDMLBox(volref, solid, material): from GDMLObjects import GDMLBox, ViewProvider print "CreateBox : " mybox = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "GDMLBox") x = solid.GetXHalfLength() * 2 y = solid.GetYHalfLength() * 2 z = solid.GetZHalfLength() * 2 GDMLBox(mybox, x, y, z, "mm", material) ViewProvider(mybox.ViewObject) return mybox
def Activated(self): from GDMLObjects import GDMLBox, ViewProvider a = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "GDMLBox") print("GDMLBox Object - added") # obj, x, y, z, lunits, material GDMLBox(a, 10.0, 10.0, 10.0, "mm", "SSteel") print("GDMLBox initiated") ViewProvider(a.ViewObject) print("GDMLBox ViewProvided - added") FreeCAD.ActiveDocument.recompute() FreeCADGui.SendMsgToActiveView("ViewFit")
def Activated(self): from GDMLObjects import GDMLCone, ViewProvider a = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "GDMLCone") print("GDMLCone Object - added") # obj,rmin1,rmax1,rmin2,rmax2,z,startphi,deltaphi,aunit,lunits,material GDMLCone(a, 1, 3, 4, 7, 10.0, 0, 2, "rads", "mm", "SSteal") print("GDMLCone initiated") ViewProvider(a.ViewObject) print("GDMLCone ViewProvided - added") FreeCAD.ActiveDocument.recompute() FreeCADGui.SendMsgToActiveView("ViewFit")
def Activated(self): from GDMLObjects import GDMLTube, ViewProvider a = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "GDMLTube") print("GDMLTube Object - added") # obj, rmin, rmax, z, startphi, deltaphi, aunit, lunits, material GDMLTube(a, 5.0, 8.0, 10.0, 0.52, 1.57, "rad", "mm", "SSteel") print("GDMLTube initiated") ViewProvider(a.ViewObject) print("GDMLTube ViewProvided - added") FreeCAD.ActiveDocument.recompute() FreeCADGui.SendMsgToActiveView("ViewFit")
def createTessellated(part, solid, material, px, py, pz, rot, displayMode): from GDMLObjects import GDMLTessellated, GDMLTriangular, \ GDMLQuadrangular, ViewProvider, ViewProviderExtension GDMLShared.trace("CreateTessellated : ") GDMLShared.trace(solid.attrib) myTess = part.newObject("Part::FeaturePython", "GDMLTessellated:" + getName(solid)) #myTess.addExtension("App::OriginGroupExtensionPython", None) GDMLTessellated(myTess, material) ViewProviderExtension(myTess.ViewObject) ViewProvider(myTess.ViewObject) for elem in solid.getchildren(): print(elem) v1 = elem.attrib['vertex1'] v2 = elem.attrib['vertex2'] v3 = elem.attrib['vertex3'] vType = elem.attrib['type'] if elem.tag == 'triangular': myTri = FreeCAD.ActiveDocument.addObject('App::FeaturePython', 'GDMLTriangle') GDMLTriangular(myTri, v1, v2, v3, vType) myTess.addObject(myTri) ViewProvider(myTri) if elem.tag == 'quadrangular': v4 = elem.attrib['vertex4'] myQuad = FreeCAD.ActiveDocument.addObject('App::FeaturePython', 'GDMLQuadrangular') GDMLQuadrangular(myQuad, v1, v2, v3, v4, vType) myTess.addObject(myQuad) ViewProvider(myQuad) GDMLShared.trace("Position : " + str(px) + ',' + str(py) + ',' + str(pz)) #base = FreeCAD.Vector(px,py,pz) base = FreeCAD.Vector(0, 0, 0) myTess.Placement = GDMLShared.processPlacement(base, rot) GDMLShared.trace(myTess.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(myTess.ViewObject) setDisplayMode(myTess, displayMode) return myTess
def Activated(self): from GDMLObjects import GDMLElTube, ViewProvider a=FreeCAD.ActiveDocument.addObject("Part::FeaturePython", \ "GDMLElTube") print("GDMLElTube Object - added") # obj,dx, dy, dz, lunit, material GDMLElTube(a,10,20,30,"mm",0) print("GDMLElTube initiated") ViewProvider(a.ViewObject) print("GDMLElTube ViewProvided - added") FreeCAD.ActiveDocument.recompute() FreeCADGui.SendMsgToActiveView("ViewFit")
def Activated(self): from GDMLObjects import GDMLEllipsoid, ViewProvider a=FreeCAD.ActiveDocument.addObject("Part::FeaturePython", \ "GDMLEllipsoid") print("GDMLEllipsoid Object - added") # obj,ax, by, cz, zcut1, zcut2, lunit,material GDMLEllipsoid(a,10,20,30,0,0,"mm",0) print("GDMLEllipsoid initiated") ViewProvider(a.ViewObject) print("GDMLEllipsoid ViewProvided - added") FreeCAD.ActiveDocument.recompute() FreeCADGui.SendMsgToActiveView("ViewFit")
def Activated(self): from GDMLObjects import GDMLTrap, ViewProvider a=FreeCAD.ActiveDocument.addObject("Part::FeaturePython","GDMLTrap") print("GDMLTrap Object - added") # obj z, theta, phi, x1, x2, x3, x4, y1, y2, # pAlp2, aunits, lunits, material GDMLTrap(a,10.0,0.0,0.0,6.0,6.0,6.0,6.0,7.0,7.0,0.0,"rad","mm",0) print("GDMLTrap initiated") ViewProvider(a.ViewObject) print("GDMLTrap ViewProvided - added") FreeCAD.ActiveDocument.recompute() FreeCADGui.SendMsgToActiveView("ViewFit")
def Activated(self): from GDMLObjects import GDMLSphere, ViewProvider a=FreeCAD.ActiveDocument.addObject("Part::FeaturePython","GDMLSphere") print("GDMLSphere Object - added") # obj, rmin, rmax, startphi, deltaphi, starttheta, deltatheta, # aunit, lunits, material GDMLSphere(a,10.0, 20.0, 0.0, 2.02, 0.0, 2.02,"rad","mm",0) print("GDMLSphere initiated") ViewProvider(a.ViewObject) print("GDMLSphere ViewProvided - added") FreeCAD.ActiveDocument.recompute() FreeCADGui.SendMsgToActiveView("ViewFit")
def createGDMLTube(volref, solid, material): from GDMLObjects import GDMLTube, ViewProvider print "CreateTube : " mytube = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "GDMLTube") rmin = solid.GetInnerRadius() rmax = solid.GetOuterRadius() z = solid.GetZHalfLength() * 2 startphi = solid.GetStartPhiAngle() deltaphi = solid.GetDeltaPhiAngle() GDMLTube(mytube,rmin,rmax,z,startphi,deltaphi, \ "rad","mm",material) print("GDMLTube initiated") ViewProvider(mytube.ViewObject) print("GDMLTube ViewProvided - added") return (mytube)
def createGDMLSphere(volref, solid, material): from GDMLObjects import GDMLSphere, ViewProvider print "CreateSphere : " mysphere = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "GDMLSphere") rmin = solid.GetInsideRadius() rmax = solid.GetOuterRadius() startphi = solid.GetStartPhiAngle() deltaphi = solid.GetDeltaPhiAngle() starttheta = solid.GetStartThetaAngle() deltatheta = solid.GetDeltaThetaAngle() GDMLSphere(mysphere,rmin,rmax,startphi,deltaphi, \ starttheta, deltatheta,"rad","mm",material) print("GDMLSphere initiated") ViewProvider(mysphere.ViewObject) print("GDMLSphere ViewProvided - added") return (mysphere)
def createGDMLCone(volref, solid, material): from GDMLObjects import GDMLCone, ViewProvider print "CreateCone : " mycone = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "GDMLCone") rmin1 = solid.GetInnerRadiusMinusZ() rmax1 = solid.GetInnerRadiusPlusZ() rmin2 = solid.GetOuterRadiusMinusZ() rmax2 = solid.GetOuterRadiusPlusZ() z = solid.GetZHalfLength() * 2 startphi = solid.GetStartPhiAngle() deltaphi = solid.GetDeltaPhiAngle() GDMLCone(mycone,rmin1,rmax1,rmin2,rmax2,z,startphi,deltaphi, \ "rad","mm",material) print("GDMLCone initiated") ViewProvider(mycone.ViewObject) print("GDMLCone ViewProvided - added") return (mycone)
def createBox(part, solid, material, px, py, pz, rot, displayMode): from GDMLObjects import GDMLBox, ViewProvider GDMLShared.trace("CreateBox : ") GDMLShared.trace(solid.attrib) mycube = part.newObject("Part::FeaturePython", "GDMLBox:" + getName(solid)) x = GDMLShared.getVal(solid, 'x') y = GDMLShared.getVal(solid, 'y') z = GDMLShared.getVal(solid, 'z') lunit = getText(solid, 'lunit', "mm") GDMLBox(mycube, x, y, z, lunit, material) GDMLShared.trace("Logical Position : " + str(px) + ',' + str(py) + ',' + str(pz)) base = FreeCAD.Vector(0, 0, 0) mycube.Placement = GDMLShared.processPlacement(base, rot) GDMLShared.trace(mycube.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(mycube.ViewObject) setDisplayMode(mycube, displayMode) #myCube.Shape = translate(mycube.Shape,base) return mycube
def createEltube(part,solid,material,px,py,pz,rot,displayMode) : from GDMLObjects import GDMLElTube, ViewProvider GDMLShared.trace("CreateElTube : ") GDMLShared.trace(solid.attrib) dx = GDMLShared.getVal(solid,'dx') dy = GDMLShared.getVal(solid,'dy') dz = GDMLShared.getVal(solid,'dz') lunit = getText(solid,'lunit',"mm") #myeltube=volObj.newObject("Part::FeaturePython","GDMLElTube:"+getName(solid)) myeltube=part.newObject("Part::FeaturePython","GDMLElTube:"+getName(solid)) GDMLElTube(myeltube,dx, dy, dz,lunit,material) GDMLShared.trace("CreateElTube : ") GDMLShared.trace("Position : "+str(px)+','+str(py)+','+str(pz)) base = FreeCAD.Vector(0,0,0) myeltube.Placement = GDMLShared.processPlacement(base,rot) GDMLShared.trace(myeltube.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(myeltube.ViewObject) setDisplayMode(myeltube,displayMode) return myeltube
def createElcone(part, solid, material, px, py, pz, rot, displayMode): from GDMLObjects import GDMLElCone, ViewProvider GDMLShared.trace("CreateElCone : ") dx = GDMLShared.getVal(solid, 'dx') dy = GDMLShared.getVal(solid, 'dy') zmax = GDMLShared.getVal(solid, 'zmax') zcut = GDMLShared.getVal(solid, 'zcut') lunit = getText(solid, 'lunit', "mm") myelcone = part.newObject("Part::FeaturePython", "GDMLElCone:" + getName(solid)) GDMLElCone(myelcone, dx, dy, zmax, zcut, lunit, material) GDMLShared.trace("CreateElCone : ") GDMLShared.trace("Position : " + str(px) + ',' + str(py) + ',' + str(pz)) base = FreeCAD.Vector(px, py, pz - zmax / 2) myelcone.Placement = GDMLShared.processPlacement(base, rot) GDMLShared.trace(myelcone.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(myelcone.ViewObject) setDisplayMode(myelcone, displayMode) return (myelcone)
def createTrd(part, solid, material, px, py, pz, rot, displayMode): from GDMLObjects import GDMLTrd, ViewProvider GDMLShared.trace("CreateTrd : ") GDMLShared.trace(solid.attrib) z = GDMLShared.getVal(solid, 'z') x1 = GDMLShared.getVal(solid, 'x1') x2 = GDMLShared.getVal(solid, 'x2') y1 = GDMLShared.getVal(solid, 'y1') y2 = GDMLShared.getVal(solid, 'y2') lunit = getText(solid, 'lunit', "mm") #print z mytrd = part.newObject("Part::FeaturePython", "GDMLTrd:" + getName(solid)) GDMLTrd(mytrd, z, x1, x2, y1, y2, lunit, material) GDMLShared.trace("Position : " + str(px) + ',' + str(py) + ',' + str(pz)) base = FreeCAD.Vector(px, py, pz) mytrd.Placement = GDMLShared.processPlacement(base, rot) GDMLShared.trace(mytrd.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(mytrd.ViewObject) setDisplayMode(mytrd, displayMode) return mytrd
def createCutTube(part, solid, material, px, py, pz, rot, displayMode): from GDMLObjects import GDMLcutTube, ViewProvider GDMLShared.trace("CreateCutTube : ") GDMLShared.trace(solid.attrib) rmin = GDMLShared.getVal(solid, 'rmin') rmax = GDMLShared.getVal(solid, 'rmax') z = GDMLShared.getVal(solid, 'z') startphi = GDMLShared.getVal(solid, 'startphi') deltaphi = GDMLShared.getVal(solid, 'deltaphi') aunit = getText(solid, 'aunit', 'rad') print("aunit : " + aunit) lowX = GDMLShared.getVal(solid, 'lowX') lowY = GDMLShared.getVal(solid, 'lowY') lowZ = GDMLShared.getVal(solid, 'lowZ') highX = GDMLShared.getVal(solid, 'highX') highY = GDMLShared.getVal(solid, 'highY') highZ = GDMLShared.getVal(solid, 'highZ') lunit = getText(solid, 'lunit', "mm") GDMLShared.trace(rmin) GDMLShared.trace(rmax) GDMLShared.trace(z) GDMLShared.trace(lowX) GDMLShared.trace(lowY) GDMLShared.trace(lowZ) GDMLShared.trace(highX) GDMLShared.trace(highY) GDMLShared.trace(highZ) mycuttube = part.newObject("Part::FeaturePython", "GDMLcutTube:" + getName(solid)) GDMLcutTube(mycuttube,rmin,rmax,z,startphi,deltaphi,aunit, \ lowX, lowY, lowZ, highX, highY, highZ, lunit, material) GDMLShared.trace("Position : " + str(px) + ',' + str(py) + ',' + str(pz)) #base = FreeCAD.Vector(0,0,0) base = FreeCAD.Vector(px, py, pz) mycuttube.Placement = GDMLShared.processPlacement(base, rot) GDMLShared.trace(mycuttube.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(mycuttube.ViewObject) setDisplayMode(mycuttube, displayMode) return mycuttube
def createEllipsoid(part,solid,material,px,py,pz,rot,displayMode) : from GDMLObjects import GDMLEllipsoid, ViewProvider GDMLShared.trace("CreateElTube : ") GDMLShared.trace(solid.attrib) ax = GDMLShared.getVal(solid,'ax') by = GDMLShared.getVal(solid,'by') cz = GDMLShared.getVal(solid,'cz') zcut1 = GDMLShared.getVal(solid,'zcut1') zcut2 = GDMLShared.getVal(solid,'zcut2') lunit = getText(solid,'lunit',"mm") #myelli=volObj.newObject("Part::FeaturePython","GDMLEllipsoid:"+getName(solid)) myelli=part.newObject("Part::FeaturePython","GDMLEllipsoid:"+getName(solid)) # cuts 0 for now GDMLEllipsoid(myelli,ax, by, cz,zcut1,zcut2,lunit,material) GDMLShared.trace("CreateEllipsoid : ") GDMLShared.trace("Position : "+str(px)+','+str(py)+','+str(pz)) base = FreeCAD.Vector(px,py,pz) myelli.Placement = GDMLShared.processPlacement(base,rot) GDMLShared.trace(myelli.Placement.Rotation) # set ViewProvider before setDisplay ViewProvider(myelli.ViewObject) setDisplayMode(myelli,displayMode) return myelli