def addToDoc(self,doc): """ Adds the ship to the FreeCad doc """ doc.openTransaction("Import FEF") m = SMesh() for layer in self.layers: m.getOrCreateLayer(layer.name) print "# of points=%d"%len(self.points) shippoints = {} for point in self.points: "ship,x,y,z,selected,vertextype" p = m.getOrCreatePoint((point.x,point.y,point.z)) #no layer! shippoints[(point.x,point.y,point.z)] = p #for edge in self.edges: # "ship,start,end,crease,selected" # start = shippoints[(edge.start.x,edge.start.y,edge.start.z)] # end = shippoints[(edge.end.x,edge.end.y,edge.end.z)] # m.getOrCreateEdge(start,end) FreeCAD.Console.PrintMessage("first commit") doc.commitTransaction() FreeCAD.Console.PrintMessage("first commit done") for face in self.faces: "ship,points,layer,selected" points=[] for p in face.points: fp = shippoints[(p.x,p.y,p.z)] points.append(fp) f = m.getOrCreateFace(points,face.layer.name) FreeCAD.Console.PrintMessage("commit face %s"%f) doc.commitTransaction() FreeCAD.Console.PrintMessage("commited face %s"%f) #f.claimChildren() doc.commitTransaction() doc.recompute()
def Activated(self): FreeCAD.ActiveDocument.openTransaction("Adding Mesh\n") self.mesh = SMesh() sel = FreeCADGui.Selection.getSelection() for ob in sel: self.mesh.doop('AddOb', [ob.Label]) FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.recompute()
def Activated(self): FreeCAD.ActiveDocument.openTransaction("Adding Mesh\n") self.mesh = SMesh() sel = FreeCADGui.Selection.getSelection() for ob in sel: self.mesh.doop('AddOb',[ob.Label]) FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.recompute()
def addToDoc(self, doc): """ Adds the ship to the FreeCad doc """ doc.openTransaction("Import FEF") m = SMesh() for layer in self.layers: m.getOrCreateLayer(layer.name) print "# of points=%d" % len(self.points) shippoints = {} for point in self.points: "ship,x,y,z,selected,vertextype" p = m.getOrCreatePoint((point.x, point.y, point.z)) #no layer! shippoints[(point.x, point.y, point.z)] = p #for edge in self.edges: # "ship,start,end,crease,selected" # start = shippoints[(edge.start.x,edge.start.y,edge.start.z)] # end = shippoints[(edge.end.x,edge.end.y,edge.end.z)] # m.getOrCreateEdge(start,end) FreeCAD.Console.PrintMessage("first commit") doc.commitTransaction() FreeCAD.Console.PrintMessage("first commit done") for face in self.faces: "ship,points,layer,selected" points = [] for p in face.points: fp = shippoints[(p.x, p.y, p.z)] points.append(fp) f = m.getOrCreateFace(points, face.layer.name) FreeCAD.Console.PrintMessage("commit face %s" % f) doc.commitTransaction() FreeCAD.Console.PrintMessage("commited face %s" % f) #f.claimChildren() doc.commitTransaction() doc.recompute()
class AddMesh: def Activated(self): FreeCAD.ActiveDocument.openTransaction("Adding Mesh\n") self.mesh = SMesh() sel = FreeCADGui.Selection.getSelection() for ob in sel: self.mesh.doop('AddOb', [ob.Label]) FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.recompute() def meshWire(self, ob): firstp = None lastp = None points = [] for p in ob.Points: sp = self.mesh.getOrCreatePoint(p, "points") points.append(sp) if firstp is None: firstp = sp if lastp is not None: self.mesh.getOrCreateEdge(lastp, sp, "edges") lastp = sp if len(ob.Points) > 2 and ob.Closed: self.mesh.getOrCreateEdge(lastp, firstp, "edges") if ob.ViewObject.DisplayMode == "Flat Lines" and ob.Closed: self.mesh.getOrCreateFace(points, "faces") @staticmethod def obtype(ob): p = getattr(ob, "Proxy", None) if p: ob = p return getattr(ob, "Type", None) def GetResources(self): return { 'Pixmap': '', 'MenuText': 'Add Mesh', 'ToolTip': 'Adds an empty surface mesh' } def IsActive(self): return FreeCAD.ActiveDocument is not None
class AddMesh: def Activated(self): FreeCAD.ActiveDocument.openTransaction("Adding Mesh\n") self.mesh = SMesh() sel = FreeCADGui.Selection.getSelection() for ob in sel: self.mesh.doop('AddOb',[ob.Label]) FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.recompute() def meshWire(self,ob): firstp=None lastp=None points=[] for p in ob.Points: sp = self.mesh.getOrCreatePoint(p,"points") points.append(sp) if firstp is None: firstp=sp if lastp is not None: self.mesh.getOrCreateEdge(lastp,sp,"edges") lastp = sp if len(ob.Points) > 2 and ob.Closed: self.mesh.getOrCreateEdge(lastp,firstp,"edges") if ob.ViewObject.DisplayMode == "Flat Lines" and ob.Closed: self.mesh.getOrCreateFace(points,"faces") @staticmethod def obtype(ob): p = getattr(ob,"Proxy",None) if p: ob = p return getattr(ob,"Type",None) def GetResources(self): return {'Pixmap' : '', 'MenuText': 'Add Mesh', 'ToolTip': 'Adds an empty surface mesh'} def IsActive(self): return FreeCAD.ActiveDocument is not None