2016-09-09 14 views
5

Ich möchte in FreeCAD einen Bogen erstellen, der im Architekturmodul verwendet wird. In Openscad würde es so aussehen:Wie erstellt man einen Arch in FreeCAD für die Architektur?

Arch in OpenSCAD

Quelle:

rotate(270, v=[1,0,0]) {difference() {rotate_extrude(fn=500) {translate([750, 0, 0])square([400,400]);}; 
translate([-2000, 0, 0]) {cube([4000, 1500, 1500]);}; 
}}; 

die Openscad Modul Mit einer Lösung ist nicht, weil ich das Gitter schnappen Funktionen verwenden möchten und der Lage sein, Bearbeiten Sie den Arch, ohne ihn zu löschen und neu zu erstellen (aus OpenSCAD-Quellcode, der in FreeCAD offensichtlich erforderlich ist).

Die Suche nach Lösungen mit einer Suchmaschine ist nicht möglich, da scheinbar nur das Architekturmodul (= Arch) angezeigt wird.

Antwort

2

Es ist möglich, einen Bogen für die Verwendung in der Architektur-Modul von

  • Schaffung einer Skizze teilEntwurfsModus, die die Fläche des Bogens
  • machen eine Struktur aus ihm in Arch Modus
zu erstellen

Die äquivalente FreeCAD scripting Code ist:

import Part 
import Sketcher 
import Arch 

App.newDocument("Unnamed") 
App.setActiveDocument("Unnamed") 
App.ActiveDocument=App.getDocument("Unnamed") 
Gui.ActiveDocument=Gui.getDocument("Unnamed") 
Gui.activateWorkbench("PartDesignWorkbench") 
App.activeDocument().addObject('Sketcher::SketchObject','Sketch') 
App.activeDocument().Sketch.Placement = App.Placement(App.Vector(0.000000,0.000000,0.000000),App.Rotation(-0.707107,0.000000,0.000000,-0.707107)) 
#Gui.activeDocument().activeView().setCamera('#Inventor V2.1 ascii \n OrthographicCamera {\n viewportMapping ADJUST_CAMERA\n position 0 -87 0 \n orientation -1 0 0 4.712389\n nearDistance -112.88701\n farDistance 287.28702\n aspectRatio 1\n focalDistance 87\n height 143.52005\n\n}') 
Gui.activeDocument().setEdit('Sketch') 
App.ActiveDocument.Sketch.addGeometry(Part.ArcOfCircle(Part.Circle(App.Vector(0.000000,-0.000000,0),App.Vector(0,0,1),200.000000),0.000000,3.141593)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',0,3,-1,1)) 
App.ActiveDocument.Sketch.addGeometry(Part.ArcOfCircle(Part.Circle(App.Vector(0.000000,-0.000000,0),App.Vector(0,0,1),300.000000),0.000000,3.141593)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',1,3,-1,1)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('PointOnObject',1,2,-1)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('PointOnObject',1,1,-1)) 
App.ActiveDocument.Sketch.addGeometry(Part.Line(App.Vector(-300.000000,-0.000000,0),App.Vector(-200.000000,-0.000000,0))) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',2,1,1,2)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',2,2,0,2)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Horizontal',2)) 
App.ActiveDocument.Sketch.addGeometry(Part.Line(App.Vector(200.000000,-0.000000,0),App.Vector(300.000000,-0.000000,0))) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',3,1,0,1)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',3,2,1,1)) 
App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Horizontal',3)) 
Gui.activeDocument().resetEdit() 
App.ActiveDocument.recompute() 
Gui.activateWorkbench("ArchWorkbench") 
Gui.activeDocument().activeView().viewAxometric() 
Arch.makeStructure(FreeCAD.ActiveDocument.Sketch) 
FreeCAD.getDocument("Unnamed").getObject("Structure").Height = '100 mm' 
Gui.SendMsgToActiveView("ViewFit") 
App.ActiveDocument.recompute() 
Gui.SendMsgToActiveView("ViewFit") 
Verwandte Themen