|
Creare modelli in FreeCAD February 07, 2020 12:57PM |
Registered: 8 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)
, uno schifo, però tenetene conto e sostitute la faccina con : D senza lo spazio in mezzo
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: 8 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: 8 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: 8 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: 8 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: 8 years ago Posts: 1,059 |
|
Re: Creare modelli in FreeCAD February 28, 2020 02:33PM |
Registered: 8 years ago Posts: 1,059 |
|
Re: Creare modelli in FreeCAD March 04, 2020 04:58AM |
Registered: 8 years ago Posts: 1,059 |
|
Re: Creare modelli in FreeCAD March 12, 2020 04:59AM |
Registered: 8 years ago Posts: 1,059 |
|
Re: Creare modelli in FreeCAD May 11, 2020 12:01PM |
Registered: 8 years ago Posts: 1,059 |