def DVPartTest(): path = os.path.dirname(os.path.abspath(__file__)) print ('TDPart path: ' + path) templateFileSpec = path + '/TestTemplate.svg' FreeCAD.newDocument("TDPart") FreeCAD.setActiveDocument("TDPart") FreeCAD.ActiveDocument=FreeCAD.getDocument("TDPart") box = FreeCAD.ActiveDocument.addObject("Part::Box","Box") page = FreeCAD.ActiveDocument.addObject('TechDraw::DrawPage','Page') FreeCAD.ActiveDocument.addObject('TechDraw::DrawSVGTemplate','Template') FreeCAD.ActiveDocument.Template.Template = templateFileSpec FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template page.Scale = 5.0 # page.ViewObject.show() # unit tests run in console mode print("page created") view = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart','View') rc = page.addView(view) FreeCAD.ActiveDocument.View.Source = [FreeCAD.ActiveDocument.Box] FreeCAD.ActiveDocument.recompute() rc = False if ("Up-to-date" in view.State): rc = True FreeCAD.closeDocument("TDPart") return rc
def add_part(base,params,doc): if isinstance(base,freecad.BaseFunction): module = importlib.import_module("BOLTS.freecad.%s.%s" % (base.collection,base.module_name)) module.__dict__[base.name](params,doc) elif isinstance(base,freecad.BaseFcstd): #copy part to doc src_doc = FreeCAD.openDocument(base.path) src_obj = src_doc.getObject(base.objectname) if src_obj is None: raise MalformedBaseError("No object %s found" % base.objectname) #maps source name to destination object srcdstmap = {} dst_obj = copy_part_recursive(src_obj,doc,srcdstmap) #set parameters for obj_name,proptoparam in base.proptoparam.iteritems(): for prop,param in proptoparam.iteritems(): setattr(srcdstmap[obj_name],prop,params[param]) #finish presentation dst_obj.touch() doc.recompute() FreeCADGui.getDocument(doc.Name).getObject(dst_obj.Name).Visibility = True FreeCAD.setActiveDocument(doc.Name) FreeCAD.closeDocument(src_doc.Name)
def MyNewApp(): # neue Datei erzeugen wenn nicht vorhanden if not (App.ActiveDocument): #Create new document App.newDocument("merzi") App.setActiveDocument("merzi") App.ActiveDocument = App.getDocument("merzi") Gui.ActiveDocument = Gui.getDocument("merzi")
def setUp(self): # setting a new document to hold the tests if FreeCAD.ActiveDocument: if FreeCAD.ActiveDocument.Name != "TransportationTest": FreeCAD.newDocument("TransportationTestA") else: FreeCAD.newDocument("TransportationTestA") FreeCAD.setActiveDocument("TransportationTestA")
def setUp(self): # setting a new document to hold the tests if FreeCAD.ActiveDocument: if FreeCAD.ActiveDocument.Name != "DraftTest": FreeCAD.newDocument("DraftTest") else: FreeCAD.newDocument("DraftTest") FreeCAD.setActiveDocument("DraftTest")
def setUp(self): try: FreeCAD.setActiveDocument("FemTest") except: FreeCAD.newDocument("FemTest") finally: FreeCAD.setActiveDocument("FemTest") self.active_doc = FreeCAD.ActiveDocument
def visualize_circle(self, doc, name="circle"): FreeCAD.setActiveDocument(doc.Name) name += "_" + str(self.radius) try: Part.show(self.shape, name) except: print("first create circle") self.object = doc.ActiveObject
def setUp(self): try: FreeCAD.setActiveDocument("FemTest") except: FreeCAD.newDocument("FemTest") finally: FreeCAD.setActiveDocument("FemTest") self.active_doc = FreeCAD.ActiveDocument
def setUp(self): '''Set up a new document to hold the tests''' if FreeCAD.ActiveDocument: if FreeCAD.ActiveDocument.Name != "DraftTest": FreeCAD.newDocument("DraftTest") else: FreeCAD.newDocument("DraftTest") FreeCAD.setActiveDocument("DraftTest")
def open(filename): """called when freecad opens an Emn file""" docname = os.path.splitext(os.path.basename(filename))[0] doc = FreeCAD.newDocument(docname) FreeCAD.setActiveDocument(docname) message='Started with opening of "'+filename+'" file\n' FreeCAD.Console.PrintMessage(message) process_emn(doc,filename)
def setUp(self): # setting a new document to hold the tests if FreeCAD.ActiveDocument: if FreeCAD.ActiveDocument.Name != "DraftTest": FreeCAD.newDocument("DraftTest") else: FreeCAD.newDocument("DraftTest") FreeCAD.setActiveDocument("DraftTest")
def setUp(self): self.doc_name = "TestObjectCreate" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument
def draw(self): try: Gui.getDocument('zRodL') Gui.getDocument('zRodL').resetEdit() App.getDocument('zRodL').recompute() App.closeDocument("zRodL") App.setActiveDocument("") App.ActiveDocument = None Gui.ActiveDocument = None except: pass #make document App.newDocument("zRodL") App.setActiveDocument("zRodL") App.ActiveDocument = App.getDocument("zRodL") Gui.ActiveDocument = Gui.getDocument("zRodL") #make sketch sketch = App.activeDocument().addObject('Sketcher::SketchObject', 'Sketch') App.activeDocument().Sketch.Placement = App.Placement( App.Vector(0.000000, 0.000000, 0.000000), App.Rotation(0.000000, 0.000000, 0.000000, 1.000000)) Gui.activeDocument().activeView().setCamera( '#Inventor V2.1 ascii \n OrthographicCamera {\n viewportMapping ADJUST_CAMERA\n position 87 0 0 \n orientation 0.57735026 0.57735026 0.57735026 2.0943952 \n nearDistance -112.887\n farDistance 287.28699\n aspectRatio 1\n focalDistance 87\n height 143.52005\n\n}' ) ## Gui.activeDocument().setEdit('Sketch') App.ActiveDocument.Sketch.addGeometry( Part.Circle(App.Vector(50, 50, 0), App.Vector(0, 0, 1), gv.zRodDiaL)) App.ActiveDocument.recompute() sketch.addConstraint(Sketcher.Constraint('Coincident', 0, 3, -1, 1)) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint( Sketcher.Constraint('Radius', 0, gv.zRodDiaL / 2)) App.ActiveDocument.recompute() Gui.getDocument('zRodL').resetEdit() App.getDocument('zRodL').recompute() #Pad sketch App.activeDocument().addObject("PartDesign::Pad", "Pad") App.activeDocument().Pad.Sketch = App.activeDocument().Sketch App.activeDocument().Pad.Length = 10.0 App.ActiveDocument.recompute() Gui.activeDocument().hide("Sketch") App.ActiveDocument.Pad.Length = gv.zRodLength App.ActiveDocument.Pad.Reversed = 0 App.ActiveDocument.Pad.Midplane = 0 App.ActiveDocument.Pad.Length2 = 100.000000 App.ActiveDocument.Pad.Type = 0 App.ActiveDocument.Pad.UpToFace = None App.ActiveDocument.recompute() Gui.activeDocument().resetEdit() #set view as axiometric Gui.activeDocument().activeView().viewAxometric()
def setUp(self): """ Load document with part. """ print(test_file_dir) part_file = os.path.join(test_file_dir, 'parts', self.__class__.__doc_name + '.fcstd') FreeCAD.open(part_file) FreeCAD.setActiveDocument(self.__class__.__doc_name) self.active_doc = FreeCAD.ActiveDocument self.active_doc.recompute()
def setUp(self): self.doc_name = "TestMeshCommon" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument
def setUp(self): self.doc_name = "TestObjectCreate" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument
def setUp(self): self.doc_name = "TestsFemCommon" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument
def setUp(self): try: FreeCAD.setActiveDocument("FemTest") except: FreeCAD.newDocument("FemTest") finally: FreeCAD.setActiveDocument("FemTest") self.active_doc = FreeCAD.ActiveDocument self.box = self.active_doc.addObject("Part::Box", "Box") self.active_doc.recompute()
def setUp(self): # init, is executed before every test self.doc_name = "TestResult" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument
def setUp(self): try: FreeCAD.setActiveDocument("FemTest") except: FreeCAD.newDocument("FemTest") finally: FreeCAD.setActiveDocument("FemTest") self.active_doc = FreeCAD.ActiveDocument self.box = self.active_doc.addObject("Part::Box", "Box") self.active_doc.recompute()
def setUp(self): # init, is executed before every test self.doc_name = "TestsFemCommon" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument
def Activated(self): # neue Datei erzeugen wenn nicht vorhanden if not (App.ActiveDocument): #Create new document App.newDocument("merzi") App.setActiveDocument("merzi") App.ActiveDocument = App.getDocument("merzi") Gui.ActiveDocument = Gui.getDocument("merzi") # Aufruf Funktion self.callback = self.KugellagerZeichnen()
def insert(self, index=None): import FreeCADGui # check if the main document is open try: FreeCAD.setActiveDocument(self.mainDocName) except: print("It is not possible to insert because the main document is closed.") return FreeCAD.closeDocument(self.previewDocName) if not index: index = self.form.tree.selectedIndexes() if not index: return index = index[0] if self.modelmode == 1: path = self.dirmodel.filePath(index) else: path = self.filemodel.itemFromIndex(index).toolTip() if path.startswith(":github"): path = self.download(LIBRARYURL.replace("/tree","/raw") + "/" + path[7:]) before = FreeCAD.ActiveDocument.Objects self.name = os.path.splitext(os.path.basename(path))[0] if path.lower().endswith(".stp") or path.lower().endswith(".step") or path.lower().endswith(".brp") or path.lower().endswith(".brep"): self.place(path) elif path.lower().endswith(".fcstd"): FreeCADGui.ActiveDocument.mergeProject(path) from DraftGui import todo todo.delay(self.reject,None) elif path.lower().endswith(".ifc"): import importIFC importIFC.ZOOMOUT = False importIFC.insert(path,FreeCAD.ActiveDocument.Name) from DraftGui import todo todo.delay(self.reject,None) elif path.lower().endswith(".sat") or path.lower().endswith(".sab"): try: # InventorLoader addon import importerIL except ImportError: try: # CADExchanger addon import CadExchangerIO except ImportError: FreeCAD.Console.PrintError(translate("BIM","Error: Unable to import SAT files - CadExchanger addon must be installed")) else: path = CadExchangerIO.insert(path,FreeCAD.ActiveDocument.Name,returnpath = True) self.place(path) else: path = importerIL.insert(path,FreeCAD.ActiveDocument.Name) FreeCADGui.Selection.clearSelection() for o in FreeCAD.ActiveDocument.Objects: if not o in before: FreeCADGui.Selection.addSelection(o) FreeCADGui.SendMsgToActiveView("ViewSelection")
def loadBitBody(self, obj, force=False): if force or not obj.BitBody: activeDoc = FreeCAD.ActiveDocument if force: self._removeBitBody(obj) (doc, opened) = self._loadBitBody(obj) obj.BitBody = obj.Document.copyObject(doc.RootObjects[0], True) if opened: FreeCAD.setActiveDocument(activeDoc.Name) FreeCAD.closeDocument(doc.Name) self._updateBitShape(obj)
def insert(filename,docname): """called when freecad imports an PlmXml file""" global FreeCAD_On,FreeCAD_Doc import FreeCAD FreeCAD.setActiveDocument(docname) doc=FreeCAD.getDocument(docname) FreeCAD.Console.PrintMessage('Started import of "'+filename+'" file') FreeCAD_Doc = doc FreeCAD_On = True parse(fileName) resolveRefs()
def insert(filename, docname): """called when freecad imports an PlmXml file""" global FreeCAD_On, FreeCAD_Doc import FreeCAD FreeCAD.setActiveDocument(docname) doc = FreeCAD.getDocument(docname) FreeCAD.Console.PrintMessage('Started import of "' + filename + '" file') FreeCAD_Doc = doc FreeCAD_On = True parse(fileName) resolveRefs()
def DVAnnoSymImageTest(): path = os.path.dirname(os.path.abspath(__file__)) print("TDTestAnno path: " + path) templateFileSpec = path + "/TestTemplate.svg" symbolFileSpec = path + "/TestSymbol.svg" imageFileSpec = path + "/TestImage.png" FreeCAD.newDocument("TDAnno") FreeCAD.setActiveDocument("TDAnno") FreeCAD.ActiveDocument = FreeCAD.getDocument("TDAnno") page = FreeCAD.ActiveDocument.addObject("TechDraw::DrawPage", "Page") FreeCAD.ActiveDocument.addObject("TechDraw::DrawSVGTemplate", "Template") FreeCAD.ActiveDocument.Template.Template = templateFileSpec FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template # page.ViewObject.show() # unit tests run in console mode # annotation anno = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewAnnotation", "TestAnno") s = "Different Text" sl = list() sl.append(s) anno.Text = sl anno.TextStyle = "Bold" page.addView(anno) anno.X = 30.0 anno.Y = 150.0 # symbol sym = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewSymbol", "TestSymbol") f = open(symbolFileSpec, "r") svg = f.read() f.close() sym.Symbol = svg page.addView(sym) sym.X = 220.0 sym.Y = 150.0 # image img = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewImage", "TestImage") img.ImageFile = imageFileSpec page.addView(img) FreeCAD.ActiveDocument.recompute() rc = False if (("Up-to-date" in anno.State) and ("Up-to-date" in sym.State) and ("Up-to-date" in img.State)): rc = True FreeCAD.closeDocument("TDAnno") return rc
def setUp(self): try: FreeCAD.setActiveDocument("FemTest") except: FreeCAD.newDocument("FemTest") finally: FreeCAD.setActiveDocument("FemTest") self.active_doc = FreeCAD.ActiveDocument self.mesh_name = 'Mesh' self.temp_dir = testtools.get_fem_test_tmp_dir() self.test_file_dir = testtools.get_fem_test_home_dir() + 'ccx/'
def setUp(self): # setUp is executed before every test # setting up a document to hold the tests self.doc_name = self.__class__.__name__ if FreeCAD.ActiveDocument: if FreeCAD.ActiveDocument.Name != self.doc_name: FreeCAD.newDocument(self.doc_name) else: FreeCAD.newDocument(self.doc_name) FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument
def setUp(self): try: FreeCAD.setActiveDocument("FemTest") except: FreeCAD.newDocument("FemTest") finally: FreeCAD.setActiveDocument("FemTest") self.active_doc = FreeCAD.ActiveDocument self.mesh_name = 'Mesh' self.temp_dir = testtools.get_fem_test_tmp_dir() self.test_file_dir = testtools.get_fem_test_home_dir() + 'ccx/'
def setUp(self): """Creates a page""" FreeCAD.newDocument("TDPart") FreeCAD.setActiveDocument("TDPart") FreeCAD.ActiveDocument = FreeCAD.getDocument("TDPart") FreeCAD.ActiveDocument.addObject("Part::Box", "Box") self.page = createPageWithSVGTemplate() self.page.Scale = 5.0 # page.ViewObject.show() # unit tests run in console mode print("page created")
def setUp(self): self.doc_name = "TestSolverFrameWork" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument self.mesh_name = 'Mesh' self.temp_dir = testtools.get_fem_test_tmp_dir() self.test_file_dir = testtools.get_fem_test_home_dir() + 'ccx/'
def setup(part,view): date = datetime.date.today().strftime("%m_%d_%Y") printerDir = gv.printerDir+"Printer_"+date+"/" #part: "printBedSupport" #subpart: App.ActiveDocument.Pocket001 FreeCAD.open(printerDir+"Parts/"+part+".FCStd") App.setActiveDocument(part) view = eval('App.ActiveDocument.'+view) create(view) App.getDocument(part).save() App.closeDocument(part)
def setup(part,view): date = datetime.date.today().strftime("%m_%d_%Y") printerDir = gv.printerDir+"Printer_"+date+"/" #part: "printBedSupport" #subpart: App.ActiveDocument.Pocket001 FreeCAD.open(printerDir+"Parts/"+part+".FCStd") App.setActiveDocument(part) view = eval('App.ActiveDocument.'+view) create(view) App.getDocument(part).save() App.closeDocument(part)
def setUp(self): # setUp is executed before every test # setting up a document to hold the tests self.doc_name = self.__class__.__name__ if FreeCAD.ActiveDocument: if FreeCAD.ActiveDocument.Name != self.doc_name: FreeCAD.newDocument(self.doc_name) else: FreeCAD.newDocument(self.doc_name) FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument # more inits self.elem = "tetra10" self.base_testfile = join(testtools.get_fem_test_home_dir(), "mesh", (self.elem + "_mesh.")) self.base_outfile = join(testtools.get_fem_test_tmp_dir(), (self.elem + "_mesh.")) # 10 node tetrahedron --> tetra10 femmesh = Fem.FemMesh() femmesh.addNode(6, 12, 18, 1) femmesh.addNode(0, 0, 18, 2) femmesh.addNode(12, 0, 18, 3) femmesh.addNode(6, 6, 0, 4) femmesh.addNode(3, 6, 18, 5) femmesh.addNode(6, 0, 18, 6) femmesh.addNode(9, 6, 18, 7) femmesh.addNode(6, 9, 9, 8) femmesh.addNode(3, 3, 9, 9) femmesh.addNode(9, 3, 9, 10) femmesh.addVolume([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) self.femmesh = femmesh self.expected_nodes = { "count": 10, "nodes": { 1: FreeCAD.Vector(6.0, 12.0, 18.0), 2: FreeCAD.Vector(0.0, 0.0, 18.0), 3: FreeCAD.Vector(12.0, 0.0, 18.0), 4: FreeCAD.Vector(6.0, 6.0, 0.0), 5: FreeCAD.Vector(3.0, 6.0, 18.0), 6: FreeCAD.Vector(6.0, 0.0, 18.0), 7: FreeCAD.Vector(9.0, 6.0, 18.0), 8: FreeCAD.Vector(6.0, 9.0, 9.0), 9: FreeCAD.Vector(3.0, 3.0, 9.0), 10: FreeCAD.Vector(9.0, 3.0, 9.0), } } self.expected_elem = { "volcount": 1, "tetcount": 1, "volumes": [1, (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)] } """
def clicked(self, index, previewDocName = "Viewer"): import Part, FreeCADGui, zipfile, tempfile, os self.previewOn = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM").GetBool("3DPreview",False) try: self.path = self.dirmodel.filePath(index) except: self.path = self.previousIndex print(self.path) self.isFile = os.path.isfile(self.path) # if the 3D preview checkbox is on ticked, show the preview if self.previewOn == True or self.linked == True: if self.isFile == True: # close a non linked preview document if self.linked == False: try: FreeCAD.closeDocument(self.previewDocName) except: pass # create different kinds of previews based on file type if self.path.lower().endswith(".stp") or self.path.lower().endswith(".step") or self.path.lower().endswith(".brp") or self.path.lower().endswith(".brep"): self.previewDocName = "Viewer" FreeCAD.newDocument(self.previewDocName) FreeCAD.setActiveDocument(self.previewDocName) Part.show(Part.read(self.path)) FreeCADGui.SendMsgToActiveView("ViewFit") elif self.path.lower().endswith(".fcstd"): openedDoc = FreeCAD.openDocument(self.path) FreeCADGui.SendMsgToActiveView("ViewFit") self.previewDocName = FreeCAD.ActiveDocument.Name thumbnailSave = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM").GetBool("SaveThumbnails",False) if thumbnailSave == True: FreeCAD.ActiveDocument.save() if self.linked == False: self.previousIndex = self.path # create a 2D image preview if self.path.lower().endswith(".fcstd"): zfile=zipfile.ZipFile(self.path) files=zfile.namelist() # check for meta-file if it's really a FreeCAD document if files[0] == "Document.xml": image="thumbnails/Thumbnail.png" if image in files: image=zfile.read(image) thumbfile = tempfile.mkstemp(suffix='.png')[1] thumb = open(thumbfile,"wb") thumb.write(image) thumb.close() im = QtGui.QPixmap(thumbfile) self.form.framePreview.setPixmap(im) return self.previewDocName, self.previousIndex, self.linked self.form.framePreview.clear() return self.previewDocName, self.previousIndex, self.linked
def setUp(self): self.doc_name = "TestSolverFrameWork" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument self.mesh_name = 'Mesh' self.temp_dir = testtools.get_fem_test_tmp_dir() self.test_file_dir = testtools.get_fem_test_home_dir() + 'ccx/'
def test000(self): # Test basic name generation with empty string FreeCAD.setActiveDocument(self.doc.Label) teststring = "" self.job.PostProcessorOutputFile = teststring self.job.SplitOutput = False outlist = PathPost.buildPostList(self.job) self.assertTrue(len(outlist) == 1) subpart, objs = outlist[0] filename = PathPost.resolveFileName(self.job, subpart, 0) self.assertEqual(filename, f"{self.testfilename}.nc")
def setUp(self): import transportationwb import transportationwb.labeltools reload(transportationwb.labeltools) if FreeCAD.ActiveDocument: if FreeCAD.ActiveDocument.Name != "TransportationTest": FreeCAD.newDocument("TransportationTest") else: FreeCAD.newDocument("TransportationTest") FreeCAD.setActiveDocument("TransportationTest") self.windows = []
def test_overlapping_parts(datadir): """ This tests that two parts that were generated from lithography over a wire register as intersecting. Due to an OCC bug, FC 0.18 at one point would claim that these didn't intersect, resulting in geometry and meshing errors. """ path = os.path.join(datadir, "intersection_test.FCStd") doc = FreeCAD.newDocument("instance") FreeCAD.setActiveDocument("instance") doc.load(path) shape_1 = doc.Objects[0] shape_2 = doc.Objects[1] assert checkOverlap([shape_1, shape_2]) FreeCAD.closeDocument(doc.Name)
def setUp(self): # init, is executed before every test self.doc_name = "TestCcxTools" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument self.mesh_name = 'Mesh' self.temp_dir = testtools.get_fem_test_tmp_dir() self.test_file_dir = join(testtools.get_fem_test_home_dir(), 'ccx')
def setUp(self): try: FreeCAD.setActiveDocument("TherMechFemTest") except: FreeCAD.newDocument("TherMechFemTest") finally: FreeCAD.setActiveDocument("TherMechFemTest") self.active_doc = FreeCAD.ActiveDocument self.box = self.active_doc.addObject("Part::Box", "Box") self.box.Height = 25.4 self.box.Width = 25.4 self.box.Length = 203.2 self.active_doc.recompute()
def Activated(self): # neue Datei erzeugen wenn nicht vorhanden if not (App.ActiveDocument): #Create new document App.newDocument("merzi") App.setActiveDocument("merzi") App.ActiveDocument = App.getDocument("merzi") Gui.ActiveDocument = Gui.getDocument("merzi") self.view = Gui.ActiveDocument.ActiveView self.stack = [] self.callback = self.view.addEventCallbackPivy( SoMouseButtonEvent.getClassTypeId(), self.getpoint)
def setUp(self): try: FreeCAD.setActiveDocument("TherMechFemTest") except: FreeCAD.newDocument("TherMechFemTest") finally: FreeCAD.setActiveDocument("TherMechFemTest") self.active_doc = FreeCAD.ActiveDocument self.box = self.active_doc.addObject("Part::Box", "Box") self.box.Height = 25.4 self.box.Width = 25.4 self.box.Length = 203.2 self.active_doc.recompute()
def draw(self): try: Gui.getDocument('zRodR') Gui.getDocument('zRodR').resetEdit() App.getDocument('zRodR').recompute() App.closeDocument("zRodR") App.setActiveDocument("") App.ActiveDocument=None Gui.ActiveDocument=None except: pass #make document App.newDocument("zRodR") App.setActiveDocument("zRodR") App.ActiveDocument=App.getDocument("zRodR") Gui.ActiveDocument=Gui.getDocument("zRodR") #make sketch # sketch = App.activeDocument().addObject('Sketcher::SketchObject','Sketch') App.activeDocument().addObject('Sketcher::SketchObject','Sketch') App.activeDocument().Sketch.Placement = App.Placement(App.Vector(0.000000,0.000000,0.000000),App.Rotation(0.000000,0.000000,0.000000,1.000000)) Gui.activeDocument().activeView().setCamera('#Inventor V2.1 ascii \n OrthographicCamera {\n viewportMapping ADJUST_CAMERA\n position 87 0 0 \n orientation 0.57735026 0.57735026 0.57735026 2.0943952 \n nearDistance -112.887\n farDistance 287.28699\n aspectRatio 1\n focalDistance 87\n height 143.52005\n\n}') ## Gui.activeDocument().setEdit('Sketch') App.ActiveDocument.Sketch.addGeometry(Part.Circle(App.Vector(50,50,0),App.Vector(0,0,1),gv.zRodDiaR)) App.ActiveDocument.recompute() #sketch.addConstraint(Sketcher.Constraint('Coincident',0,3,-1,1)) App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',0,3,-1,1)) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Radius',0,gv.zRodDiaR/2)) App.ActiveDocument.recompute() Gui.getDocument('zRodR').resetEdit() App.getDocument('zRodR').recompute() #Pad sketch App.activeDocument().addObject("PartDesign::Pad","Pad") App.activeDocument().Pad.Sketch = App.activeDocument().Sketch App.activeDocument().Pad.Length = 10.0 App.ActiveDocument.recompute() Gui.activeDocument().hide("Sketch") App.ActiveDocument.Pad.Length = gv.zRodLength App.ActiveDocument.Pad.Reversed = 0 App.ActiveDocument.Pad.Midplane = 0 App.ActiveDocument.Pad.Length2 = 100.000000 App.ActiveDocument.Pad.Type = 0 App.ActiveDocument.Pad.UpToFace = None App.ActiveDocument.recompute() Gui.activeDocument().resetEdit() #set view as axiometric Gui.activeDocument().activeView().viewAxometric()
def makeAssemblyFile(): try: App.getDocument('PrinterAssembly').recompute() App.closeDocument("PrinterAssembly") App.setActiveDocument("") App.ActiveDocument = None except: pass # make document # Make Assembly file App.newDocument("PrinterAssembly") App.setActiveDocument("PrinterAssembly") App.ActiveDocument = App.getDocument("PrinterAssembly")
def DVAnnoSymImageTest(): path = os.path.dirname(os.path.abspath(__file__)) print ('TDTestAnno path: ' + path) templateFileSpec = path + '/TestTemplate.svg' symbolFileSpec = path + '/TestSymbol.svg' imageFileSpec = path + '/TestImage.png' FreeCAD.newDocument("TDAnno") FreeCAD.setActiveDocument("TDAnno") FreeCAD.ActiveDocument=FreeCAD.getDocument("TDAnno") page = FreeCAD.ActiveDocument.addObject('TechDraw::DrawPage','Page') FreeCAD.ActiveDocument.addObject('TechDraw::DrawSVGTemplate','Template') FreeCAD.ActiveDocument.Template.Template = templateFileSpec FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template # page.ViewObject.show() # unit tests run in console mode #annotation anno = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewAnnotation','TestAnno') s = 'Different Text' sl = list() sl.append(s) anno.Text = sl anno.TextStyle = 'Bold' rc = page.addView(anno) anno.X = 30.0 anno.Y = 150.0 #symbol sym = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewSymbol','TestSymbol') f = open(symbolFileSpec, 'r') svg = f.read() f.close() sym.Symbol = svg rc = page.addView(sym) sym.X = 220.0 sym.Y = 150.0 #image img = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewImage','TestImage') img.ImageFile = imageFileSpec rc = page.addView(img) FreeCAD.ActiveDocument.recompute() rc = False if ("Up-to-date" in anno.State) and ("Up-to-date" in sym.State) and ("Up-to-date" in img.State): rc = True FreeCAD.closeDocument("TDAnno") return rc
def setUp(self): self.doc_name = "TestMeshEleTetra10" try: FreeCAD.setActiveDocument(self.doc_name) except: FreeCAD.newDocument(self.doc_name) finally: FreeCAD.setActiveDocument(self.doc_name) self.active_doc = FreeCAD.ActiveDocument self.elem = 'tetra10' self.base_testfile = join(testtools.get_fem_test_home_dir(), 'mesh', (self.elem + '_mesh.')) self.base_outfile = join(testtools.get_fem_test_tmp_dir(), (self.elem + '_mesh.')) # 10 node tetrahedron --> tetra10 femmesh = Fem.FemMesh() femmesh.addNode(6, 12, 18, 1) femmesh.addNode(0, 0, 18, 2) femmesh.addNode(12, 0, 18, 3) femmesh.addNode(6, 6, 0, 4) femmesh.addNode(3, 6, 18, 5) femmesh.addNode(6, 0, 18, 6) femmesh.addNode(9, 6, 18, 7) femmesh.addNode(6, 9, 9, 8) femmesh.addNode(3, 3, 9, 9) femmesh.addNode(9, 3, 9, 10) femmesh.addVolume([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) self.femmesh = femmesh self.expected_nodes = { 'count': 10, 'nodes': { 1: FreeCAD.Vector(6.0, 12.0, 18.0), 2: FreeCAD.Vector(0.0, 0.0, 18.0), 3: FreeCAD.Vector(12.0, 0.0, 18.0), 4: FreeCAD.Vector(6.0, 6.0, 0.0), 5: FreeCAD.Vector(3.0, 6.0, 18.0), 6: FreeCAD.Vector(6.0, 0.0, 18.0), 7: FreeCAD.Vector(9.0, 6.0, 18.0), 8: FreeCAD.Vector(6.0, 9.0, 9.0), 9: FreeCAD.Vector(3.0, 3.0, 9.0), 10: FreeCAD.Vector(9.0, 3.0, 9.0), } } self.expected_elem = { 'volcount': 1, 'tetcount': 1, 'volumes': [1, (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)] } '''
def updateAssembly(): if len(FreeCADGui.Selection.getSelection()) == 0: FreeCAD.Console.PrintWarning("Select assembly!\n") mainFile = FreeCAD.ActiveDocument.Label for i in FreeCADGui.Selection.getSelection(): if hasattr(i, "Proxy") and hasattr(i, "Type") and i.Proxy.Type == 'assemblyMain': i.Proxy.updateParts(i) i.Proxy.updateRotation(i) # FreeCAD.setActiveDocument(mainFile) FreeCADGui.ActiveDocument = FreeCADGui.getDocument(mainFile) FreeCADGui.ActiveDocument.activeView().viewAxometric() FreeCADGui.ActiveDocument.activeView().fitAll() FreeCAD.ActiveDocument.recompute()
def draw(self): try: App.getDocument(self.name).recompute() App.closeDocument(self.name) App.setActiveDocument("") App.ActiveDocument=None except: pass #make document App.newDocument(self.name) App.setActiveDocument(self.name) App.ActiveDocument=App.getDocument(self.name) #extrude crossBarTop uf.extrudeFrameMember(self.name, gv.frameSpacerLength)
def draw(self): self.defineVariables() # import FreeCAD modules import FreeCAD as App import Part import Sketcher try: App.getDocument('xRodBottom').recompute() App.closeDocument("xRodBottom") App.setActiveDocument("") App.ActiveDocument = None except: pass # make document App.newDocument("xRodBottom") App.setActiveDocument("xRodBottom") App.ActiveDocument = App.getDocument("xRodBottom") # make sketch App.activeDocument().addObject('Sketcher::SketchObject', 'Sketch') App.activeDocument().Sketch.Placement = App.Placement(App.Vector(0.000000, 0.000000, 0.000000), App.Rotation(0.500000, 0.500000, 0.500000, 0.500000)) App.ActiveDocument.Sketch.addGeometry( Part.Circle(App.Vector(50, 50, 0), App.Vector(0, 0, 1), self.Diameter / 2)) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident', 0, 3, -1, 1)) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Radius', 0, self.Diameter / 2)) App.ActiveDocument.recompute() App.getDocument('xRodBottom').recompute() # Pad sketch App.activeDocument().addObject("PartDesign::Pad", "Pad") App.activeDocument().Pad.Sketch = App.activeDocument().Sketch App.activeDocument().Pad.Length = 10.0 App.ActiveDocument.recompute() App.ActiveDocument.Pad.Length = self.Length_of_Shorter_X_Rod App.ActiveDocument.Pad.Reversed = 0 App.ActiveDocument.Pad.Midplane = 0 App.ActiveDocument.Pad.Length2 = 100.000000 App.ActiveDocument.Pad.Type = 0 App.ActiveDocument.Pad.UpToFace = None App.ActiveDocument.recompute()
def draw(self): #import FreeCAD modules import FreeCAD as App import Part import Sketcher #Specific to printer import globalVars as gv try: App.getDocument('xRodTop').recompute() App.closeDocument("xRodTop") App.setActiveDocument("") App.ActiveDocument=None except: pass #make document App.newDocument("xRodTop") App.setActiveDocument("xRodTop") App.ActiveDocument=App.getDocument("xRodTop") #make sketch App.activeDocument().addObject('Sketcher::SketchObject','Sketch') App.activeDocument().Sketch.Placement = App.Placement(App.Vector(0.000000,0.000000,0.000000),App.Rotation(0.500000,0.500000,0.500000,0.500000)) App.ActiveDocument.Sketch.addGeometry(Part.Circle(App.Vector(50,50,0),App.Vector(0,0,1),gv.xRodDiaTop/2)) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',0,3,-1,1)) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Radius',0,gv.xRodDiaTop/2)) App.ActiveDocument.recompute() App.getDocument('xRodTop').recompute() #Pad sketch App.activeDocument().addObject("PartDesign::Pad","Pad") App.activeDocument().Pad.Sketch = App.activeDocument().Sketch App.activeDocument().Pad.Length = 10.0 App.ActiveDocument.recompute() App.ActiveDocument.Pad.Length = gv.xRodLength App.ActiveDocument.Pad.Reversed = 0 App.ActiveDocument.Pad.Midplane = 0 App.ActiveDocument.Pad.Length2 = 100.000000 App.ActiveDocument.Pad.Type = 0 App.ActiveDocument.Pad.UpToFace = None App.ActiveDocument.recompute()
def creaProjecte(name="Projecte"): """ Crea l'estructura basica de projecte """ FreeCADGui.activateWorkbench("Survey") # setting a new document to hold the tests if not FreeCAD.ActiveDocument: FreeCAD.newDocument("SurveyProject") FreeCAD.setActiveDocument("SurveyProject") doc = FreeCAD.activeDocument() creaCarpetaProjecte("Punts", "Punts", doc) creaCarpetaProjecte("Breaklines", "Breaklines", doc) creaCarpetaProjecte("Surfaces", "Surfaces", doc) creaCarpetaProjecte("Alignment", "Alignments", doc) return doc
def DVSectionTest(): path = os.path.dirname(os.path.abspath(__file__)) print ('TDSection path: ' + path) templateFileSpec = path + '/TestTemplate.svg' FreeCAD.newDocument("TDSection") FreeCAD.setActiveDocument("TDSection") FreeCAD.ActiveDocument=FreeCAD.getDocument("TDSection") box = FreeCAD.ActiveDocument.addObject("Part::Box","Box") page = FreeCAD.ActiveDocument.addObject('TechDraw::DrawPage','Page') FreeCAD.ActiveDocument.addObject('TechDraw::DrawSVGTemplate','Template') FreeCAD.ActiveDocument.Template.Template = templateFileSpec FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template page.Scale = 5.0 # page.ViewObject.show() # unit tests run in console mode print("page created") view = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart','View') rc = page.addView(view) view.Source = [box] view.Direction = (0.0,0.0,1.0) view.Rotation = 0.0 view.X = 30.0 view.Y = 150.0 print("view created") section = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewSection','Section') rc = page.addView(section) section.Source = [box] section.BaseView = view section.Direction = (0.0,1.0,0.0) section.SectionNormal = (0.0,1.0,0.0) section.SectionOrigin = (5.0,5.0,5.0) view.touch() print("section created") FreeCAD.ActiveDocument.recompute() rc = False if ("Up-to-date" in view.State) and ("Up-to-date" in section.State): rc = True FreeCAD.closeDocument("TDSection") return rc
def DHatchTest(): path = os.path.dirname(os.path.abspath(__file__)) print ('TDHatch path: ' + path) templateFileSpec = path+'/TestTemplate.svg' hatchFileSpec = path + '/TestHatch.svg' FreeCAD.newDocument("TDHatch") FreeCAD.setActiveDocument("TDHatch") FreeCAD.ActiveDocument=FreeCAD.getDocument("TDHatch") #make source feature box = FreeCAD.ActiveDocument.addObject("Part::Box","Box") #make a page page = FreeCAD.ActiveDocument.addObject('TechDraw::DrawPage','Page') FreeCAD.ActiveDocument.addObject('TechDraw::DrawSVGTemplate','Template') FreeCAD.ActiveDocument.Template.Template = templateFileSpec FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template page.Scale = 5.0 # page.ViewObject.show() #unit tests run in console mode #make Views view1 = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart','View') FreeCAD.ActiveDocument.View.Source = [box] rc = page.addView(view1) FreeCAD.ActiveDocument.recompute() #make hatch print("making hatch") hatch = FreeCAD.ActiveDocument.addObject('TechDraw::DrawHatch','Hatch') hatch.Source = (view1,["Face0"]) hatch.HatchPattern = hatchFileSpec #comment out to use default from preferences print("adding hatch to page") rc = page.addView(hatch) print("finished hatch") FreeCAD.ActiveDocument.recompute() rc = False if ("Up-to-date" in hatch.State): rc = True FreeCAD.closeDocument("TDHatch") return rc
def test(): """ import ops reload(ops) ops.test() """ import Draft FreeCAD.newDocument() FreeCAD.setActiveDocument("Unnamed") FreeCAD.ActiveDocument=FreeCAD.getDocument("Unnamed") FreeCAD.Gui.ActiveDocument=FreeCAD.Gui.getDocument("Unnamed") #wb=FreeCAD.Gui.getWorkbench('SurfaceEditingWorkbench') am=SurfaceEditing.AddMesh() am.Activated() mesh=FreeCAD.Gui.getDocument("Unnamed").getObject("Mesh").Proxy FreeCAD.Gui.Selection.addSelection(mesh.Object) FreeCAD.Gui.seEditor.addPoint((400,400)) FreeCAD.Gui.seEditor.addPoint((410,410)) FreeCAD.Gui.seEditor.addPoint((415,415)) p=FreeCAD.ActiveDocument.getObject('Point') print p.Coordinates mesh.doop('MovePoint',["Point"],relative=True,x=-0.5,y=-0.5,z=10) print p.Coordinates FreeCAD.Gui.SendMsgToActiveView("ViewFit") h1=mesh.history[0] mesh.redoop(h1,[],layer='Default Layer',x=0.3,y=0,z=0) print p.Coordinates FreeCAD.Gui.SendMsgToActiveView("ViewFit") w1=FreeCAD.Base.Vector(0,0,0) w2=FreeCAD.Base.Vector(0,1,0) wire=Draft.makeWire([w1,w2]) op=mesh.doop('AddWire',[wire.Label]) pname=op.attributes['points'][1] mesh.doop('MovePoint',[pname],relative=True,x=-0.2,y=0.2) ob=FreeCAD.Gui.getDocument("Unnamed").getObject("Line") ps=ob.Object.Points ps[1]=FreeCAD.Base.Vector(0.5,0.5,0) ob.Object.Points=ps mesh.redoop(op,op.sources,**op.attributes) mesh.redoop(op,op.sources,**op.attributes) mesh.doop('AddPoint',[],x=0.5,y=0.5,z=1) FreeCAD.Gui.SendMsgToActiveView("ViewFit")
def makeAssemblyFile(): try: Gui.getDocument('PrinterAssembly') Gui.getDocument('PrinterAssembly').resetEdit() App.getDocument('PrinterAssembly').recompute() App.closeDocument("PrinterAssembly") App.setActiveDocument("") App.ActiveDocument=None Gui.ActiveDocument=None except: pass #make document #Make Assembly file App.newDocument("PrinterAssembly") App.setActiveDocument("PrinterAssembly") App.ActiveDocument=App.getDocument("PrinterAssembly") Gui.ActiveDocument=Gui.getDocument("PrinterAssembly") Gui.activeDocument().activeView().setCamera('#Inventor V2.1 ascii \n OrthographicCamera {\n viewportMapping ADJUST_CAMERA \n position 0 0 87 \n orientation 0 0 1 0 \n nearDistance -112.88701 \n farDistance 287.28702 \n aspectRatio 1 \n focalDistance 87 \n height 143.52005 }') Gui.activeDocument().activeView().viewAxometric()
def draw(self): try: Gui.getDocument(self.name) Gui.getDocument(self.name).resetEdit() App.getDocument(self.name).recompute() App.closeDocument(self.name) App.setActiveDocument("") App.ActiveDocument=None Gui.ActiveDocument=None except: pass #make document App.newDocument(self.name) App.setActiveDocument(self.name) App.ActiveDocument=App.getDocument(self.name) Gui.ActiveDocument=Gui.getDocument(self.name) #extrude crossBarBottom uf.extrudeFrameMember(self.name, gv.sideBarLength)
def draw(self): try: App.getDocument("xRodTop").recompute() App.closeDocument("xRodTop") App.setActiveDocument("") App.ActiveDocument = None except: pass # make document App.newDocument("xRodTop") App.setActiveDocument("xRodTop") App.ActiveDocument = App.getDocument("xRodTop") # make sketch App.activeDocument().addObject("Sketcher::SketchObject", "Sketch") App.activeDocument().Sketch.Placement = App.Placement( App.Vector(0.000000, 0.000000, 0.000000), App.Rotation(0.500000, 0.500000, 0.500000, 0.500000) ) App.ActiveDocument.Sketch.addGeometry( Part.Circle(App.Vector(50, 50, 0), App.Vector(0, 0, 1), gv.xRodDiaTop / 2) ) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint("Coincident", 0, 3, -1, 1)) App.ActiveDocument.recompute() App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint("Radius", 0, gv.xRodDiaTop / 2)) App.ActiveDocument.recompute() App.getDocument("xRodTop").recompute() # Pad sketch App.activeDocument().addObject("PartDesign::Pad", "Pad") App.activeDocument().Pad.Sketch = App.activeDocument().Sketch App.activeDocument().Pad.Length = 10.0 App.ActiveDocument.recompute() App.ActiveDocument.Pad.Length = gv.xRodLength App.ActiveDocument.Pad.Reversed = 0 App.ActiveDocument.Pad.Midplane = 0 App.ActiveDocument.Pad.Length2 = 100.000000 App.ActiveDocument.Pad.Type = 0 App.ActiveDocument.Pad.UpToFace = None App.ActiveDocument.recompute()