Creare modelli in FreeCAD February 07, 2020 12:57PM |
Registered: 6 years ago Posts: 1,059 |
The portable builds do not require an installation. Extract the file using 7zip and start the application by double clicking on FreeCAD.exe in the bin sub-directory of the extracted package.
import FreeCAD from FreeCAD import Base, Vector import Part
import FreeCAD
from FreeCAD import Base, Vector
FreeCAD.Base
import Part
DOC = FreeCAD.activeDocument() def clear_doc(): """ Clear the active document deleting all the objects """ for obj in DOC.Objects: DOC.removeObject(obj.Name) if DOC is None: FreeCAD.newDocument("Pippo") FreeCAD.setActiveDocument("Pippo") DOC = FreeCAD.activeDocument() else: clear_doc() # EPS= tolerance to uset to cut the parts EPS = 0.10 EPS_C = EPS * -0.5
DOC.addObject("App:ocumentObjectGroup", CMPN_NAME)
e_rad = 10 e_alt = 20 obj1 = DOC.addObject("Part::Cylinder", "int_cyl") obj1.Angle = 180 obj1.Radius = e_rad obj1.Height = e_alt obj1.Placement = FreeCAD.Placement(Vector(0, 0, e_alt), Base.Rotation(Vector(0, 0, 0), 0))
obj1.Placement = FreeCAD.Placement(FreeCAD.Vector(0, 0, e_alt), FreeCAD.Base.Rotation(FreeCAD.Vector(0, 0, 0), 0))
Re: Creare modelli in FreeCAD February 08, 2020 10:52AM |
Registered: 6 years ago Posts: 1,059 |
import FreeCAD from FreeCAD import Base, Vector import Part DOC = FreeCAD.activeDocument() def clear_doc(): """ Clear the active document deleting all the objects """ for obj in DOC.Objects: DOC.removeObject(obj.Name) if DOC is None: FreeCAD.newDocument("Pippo") FreeCAD.setActiveDocument("Pippo") DOC = FreeCAD.activeDocument() else: clear_doc() # EPS= tolerance to uset to cut the parts EPS = 0.10 EPS_C = EPS * -0.5 e_rad = 10 e_alt = 20 obj1 = DOC.addObject("Part::Cylinder", "int_cyl") obj1.Angle = 180 obj1.Radius = e_rad obj1.Height = e_alt obj1.Placement = FreeCAD.Placement(Vector(0, 0, e_alt), Base.Rotation(Vector(0, 0, 0), 0))
DOC = FreeCAD.activeDocument() def clear_doc(): """ Clear the active document deleting all the objects """ for obj in DOC.Objects: DOC.removeObject(obj.Name) if DOC is None: FreeCAD.newDocument("Pippo") FreeCAD.setActiveDocument("Pippo") DOC = FreeCAD.activeDocument() else: clear_doc()
def clear_doc(): """ Clear the active document deleting all the objects """ for obj in DOC.Objects: DOC.removeObject(obj.Name)
if DOC is None: FreeCAD.newDocument("Pippo") FreeCAD.setActiveDocument("Pippo") DOC = FreeCAD.activeDocument() else: clear_doc()
e_rad = 10 e_alt = 20 obj1 = DOC.addObject("Part::Cylinder", "int_cyl") obj1.Angle = 180 obj1.Radius = e_rad obj1.Height = e_alt obj1.Placement = FreeCAD.Placement(Vector(0, 0, e_alt), Base.Rotation(Vector(0, 0, 0), 0))
FreeCAD.Gui.SendMsgToActiveView("ViewFit") FreeCAD.Gui.activeDocument().activeView().viewAxometric()
def zero_plane(zp_w, zp_l): zero = Part.makePlane(zp_w, zp_l, Vector(0, 0, 0), Vector(0, 0, 1)) pl2 = DOC.addObject("Part::Feature", "zero_plane") pl2.Shape = zero pl2.ViewObject.ShapeColor = (1.00, 0.41, 0.70) pl2.ViewObject.Transparency = 60 pl2.Placement = FreeCAD.Placement(Vector(zp_w * -0.5, zp_l * -0.5, 0), Base.Rotation(Vector(0, 0, 0), 0))
zero_plane(100,100)
import FreeCAD from FreeCAD import Base, Vector import Part DOC = FreeCAD.activeDocument() def clear_doc(): """ Clear the active document deleting all the objects """ for obj in DOC.Objects: DOC.removeObject(obj.Name) def zero_plane(zp_w, zp_l): zero = Part.makePlane(zp_w, zp_l, Vector(0, 0, 0), Vector(0, 0, 1)) pl2 = DOC.addObject("Part::Feature", "zero_plane") pl2.Shape = zero pl2.ViewObject.ShapeColor = (1.00, 0.41, 0.70) pl2.ViewObject.Transparency = 60 pl2.Placement = FreeCAD.Placement(Vector(zp_w * -0.5, zp_l * -0.5, 0), Base.Rotation(Vector(0, 0, 0), 0)) if DOC is None: FreeCAD.newDocument("Pippo") FreeCAD.setActiveDocument("Pippo") DOC = FreeCAD.activeDocument() else: clear_doc() # EPS= tolerance to uset to cut the parts EPS = 0.10 EPS_C = EPS * -0.5 e_rad = 10 e_alt = 20 obj1 = DOC.addObject("Part::Cylinder", "int_cyl") obj1.Angle = 180 obj1.Radius = e_rad obj1.Height = e_alt obj1.Placement = FreeCAD.Placement(Vector(0, 0, 0), Base.Rotation(Vector(0, 0, 0), 0)) DOC.recompute() zero_plane(100,100) DOC.recompute() FreeCAD.Gui.SendMsgToActiveView("ViewFit") FreeCAD.Gui.activeDocument().activeView().viewAxometric()
Re: Creare modelli in FreeCAD February 09, 2020 11:03AM |
Registered: 6 years ago Posts: 1,059 |
# EPS= tolerance to uset to cut the parts EPS = 0.10 EPS_C = EPS * -0.5 def base_cyl(nome, rad, alt): obj1 = DOC.addObject("Part::Cylinder", nome) obj1.Angle = 180 obj1.Radius = rad obj1.Height = alt obj1.Placement = FreeCAD.Placement(Vector(0, 0, 0), Base.Rotation(Vector(0, 0, 0), 0)) DOC.recompute() base_cyl("int_cyl", 10, 20) zero_plane(100,100) DOC.recompute() FreeCAD.Gui.SendMsgToActiveView("ViewFit") FreeCAD.Gui.activeDocument().activeView().viewAxometric()
# EPS= tolerance to uset to cut the parts EPS = 0.10 EPS_C = EPS * -0.5 def base_cyl(nome, rad, alt): obj1 = DOC.addObject("Part::Cylinder", nome) obj1.Angle = 180 obj1.Radius = rad obj1.Height = alt DOC.recompute() return obj1 cyl = base_cyl("int_cyl", 10, 20) cyl.Placement = FreeCAD.Placement(Vector(0, 0, EPS_C), Base.Rotation(Vector(0, 0, 0), 0)) zero_plane(100,100) DOC.recompute() FreeCAD.Gui.SendMsgToActiveView("ViewFit") FreeCAD.Gui.activeDocument().activeView().viewAxometric()
EPS_C = EPS * -0.5 def base_cyl(nome, rad, alt, angle): obj1 = DOC.addObject("Part::Cylinder", nome) obj1.Angle = angle obj1.Radius = rad obj1.Height = alt DOC.recompute() return obj1 def fori_allegg(nome, n_fori, offset, v_dia, tot_h, off_z): ang_dist = pi / n_fori center = Vector(0,0,0) compound =[] for n_s in range(0, n_fori): vpx = offset * cos((2 * ang_dist * n_s)) + center[0] vpy = offset * sin((2 * ang_dist * n_s)) + center[1] nome_ob = nome + "_" + str(n_s) obj = base_cyl(nome_ob, v_dia, tot_h, 360) obj.Placement = FreeCAD.Placement(Vector(vpx, vpy , off_z), Base.Rotation(Vector(0, 0, 0), 0)) compound.append(obj) obj_cmp = DOC.addObject("Part::Compound", "fori_allegg") obj_cmp.Links = compound DOC.recompute() return obj_cmp def supp_forato(nome): cyl = base_cyl("base_cyl", 100, 20, 360) fori = fori_allegg("fori_allegg", 7, 50, 15, 20 + EPS, EPS_C) obj_r = DOC.addObject("Part::Cut", nome) obj_r.Base = cyl obj_r.Tool = fori obj_r.Refine = True obj_r.Placement = FreeCAD.Placement(Vector(0, 0, 0), Base.Rotation(Vector(0, 0, 0), 0)) DOC.recompute() zero_plane(100,100) supp_forato("supporto") DOC.recompute() FreeCAD.Gui.SendMsgToActiveView("ViewFit") FreeCAD.Gui.activeDocument().activeView().viewAxometric()
def base_cyl(nome, rad, alt, angle): obj1 = DOC.addObject("Part::Cylinder", nome) obj1.Angle = angle obj1.Radius = rad obj1.Height = alt DOC.recompute() return obj1
def fori_allegg(nome, n_fori, offset, v_dia, tot_h, off_z): ang_dist = pi / n_fori center = Vector(0,0,0) compound =[] for n_s in range(0, n_fori): vpx = offset * cos((2 * ang_dist * n_s)) + center[0] vpy = offset * sin((2 * ang_dist * n_s)) + center[1] nome_ob = nome + "_" + str(n_s) obj = base_cyl(nome_ob, v_dia, tot_h, 360) obj.Placement = FreeCAD.Placement(Vector(vpx, vpy , off_z), Base.Rotation(Vector(0, 0, 0), 0)) compound.append(obj) obj_cmp = DOC.addObject("Part::Compound", "fori_allegg") obj_cmp.Links = compound DOC.recompute() return obj_cmp
obj_cmp = DOC.addObject("Part::Compound", "fori_allegg") obj_cmp.Links = compound DOC.recompute()
for n_s in range(0, n_fori): vpx = offset * cos((2 * ang_dist * n_s)) + center[0] vpy = offset * sin((2 * ang_dist * n_s)) + center[1] nome_ob = nome + "_" + str(n_s) obj = base_cyl(nome_ob, v_dia, tot_h, 360) obj.Placement = FreeCAD.Placement(Vector(vpx, vpy , off_z), Base.Rotation(Vector(0, 0, 0), 0)) compound.append(obj)
obj_r = DOC.addObject("Part::Cut", nome) obj_r.Base = cyl obj_r.Tool = fori obj_r.Refine = True obj_r.Placement = FreeCAD.Placement(Vector(0, 0, 0), Base.Rotation(Vector(0, 0, 0), 0))
myfus = DOC.addObject("Part::Fuse", "fusione") myfus.Base = mybox myfus.Tool = mybox_2
obj_bf = DOC.addObject("Part::MultiFuse", "supp testa_base") obj_bf.Shapes = [ext_ring, int_ring, snodo] obj_bf.Refine = True obj_bf.Placement = FreeCAD.Placement(Vector(0, 0, 0), Base.Rotation(Vector(0, 0, 0), 0))
Re: Creare modelli in FreeCAD February 10, 2020 07:03AM |
Registered: 6 years ago Posts: 1,059 |
def create_mesh(o_name): """ Create the mesh object """ mesh = DOC.addObject("Mesh::Feature", "Mesh") mesh.Mesh = MeshPart.meshFromShape( Shape=DOC.getObject(o_name).Shape, LinearDeflection=0.01, AngularDeflection=0.025, Relative=False) mesh.Label = "Mesh_" + o_name mesh.ViewObject.CreaseAngle = 25.0 filename = u"/Model_" + o_name + ".amf" __objs__ = [] __objs__.append(mesh) Mesh.export(__objs__, filename, tolerance=0.01, exportAmfCompressed=False)
Shape=DOC.getObject(o_name).Shape
import Mesh import MeshPart
filename = u"/Model_" + o_name + ".amf"
Mesh.export(__objs__, filename, tolerance=0.01, exportAmfCompressed=False)
LinearDeflection=0.01, AngularDeflection=0.025,
Re: Creare modelli in FreeCAD February 11, 2020 06:53AM |
Registered: 6 years ago Posts: 1,059 |
obj = test_cube() rpy_rot(obj, 100, 100, 50, 0, 0, 0, True, 30)
def cube(l,w,h): obj_b = DOC.addObject("Part::Box", "base_cube") obj_b.Length = l obj_b.Width = w obj_b.Height = h obj_b.Placement = FreeCAD.Placement(Vector(l * -0.5, w * -0.5, h * -0.5), FreeCAD.Rotation(Vector(0,0,0), 0))
def rpy_rot(obj, tx, ty, tz, rx, ry, rz, axis, l_ind ):
rpy_rot(obj, 100, 100, 50, 45, 0, 0, True, 30) print(obj.Placement)
Placement [Pos=(100,100,50), Yaw-Pitch-Roll=(0,0,45)]
Yaw = 10 degrees (Z) Pitch = 20 degrees (Y) Roll = 30 degrees (X)
Re: Creare modelli in FreeCAD February 19, 2020 01:11PM |
Registered: 6 years ago Posts: 1,059 |
Re: Creare modelli in FreeCAD February 28, 2020 02:33PM |
Registered: 6 years ago Posts: 1,059 |
Re: Creare modelli in FreeCAD March 04, 2020 04:58AM |
Registered: 6 years ago Posts: 1,059 |
Re: Creare modelli in FreeCAD March 12, 2020 04:59AM |
Registered: 6 years ago Posts: 1,059 |
Re: Creare modelli in FreeCAD May 11, 2020 12:01PM |
Registered: 6 years ago Posts: 1,059 |