Box,Box001と2個できるのに、
myTetrahedron_x0_0y0_0z0_0が2個できないのは、どうしてですか?
マクロを2度実行すると、期待通りに、myTetrahedron_x0_0y0_0z0_0001ができます。
②
myTetrahedron(P1x,P1y,P1z,P2x,P2y,P2z,P3x,P3y,P3z,P4x,P4y,P4z)
myTetrahedron(P1x+50.0,P1y,P1z,P2x+50.0,,P2y,P2z,P3x+50.0,,P3y,P3z,P4x+50.0,,P4y,P4z)
2個できませんでした。
③
Boxをコピー(複写)する方法を教えて下さい。
myTetrahedron_x0_0y0_0z0_0をコピー(複写)する方法を教えて下さい。
よろしくお願いします。
Code: Select all
import FreeCAD
import Part
import DraftTools
import Draft
import Mesh
def myTetrahedron(P1x,P1y,P1z,P2x,P2y,P2z,P3x,P3y,P3z,P4x,P4y,P4z):
xDummy=0
yDummy=0
zDummy=0
a =[[xDummy,yDummy,zDummy], #dummy
[P1x,P1y,P1z],
[P2x,P2y,P2z],
[P3x,P3y,P3z],
[P4x,P4y,P4z]]
m1 = Mesh.Mesh([a[1],a[2],a[3]])
m2 = Mesh.Mesh([a[1],a[2],a[4]])
m3 = Mesh.Mesh([a[2],a[3],a[4]])
m4 = Mesh.Mesh([a[3],a[1],a[4]])
mesh=Mesh.Mesh()
mesh.addMesh(m1)
mesh.addMesh(m2)
mesh.addMesh(m3)
mesh.addMesh(m4)
shape = Part.Shape()
shape.makeShapeFromMesh(mesh.Topology,0.05)
solid = Part.makeSolid(shape).removeSplitter()
myWedgei='myTetrahedron_'+'x' + str(P1x) + 'y' + str(P1y)+ 'z' + str(P1z)
f = doc.addObject("Part::Feature",myWedgei)
f.Shape = solid
gui_doc.getObject('myTetrahedron_x0_0y0_0z5_0').ShapeColor = (1.00,1.00,0.50)
target_object=doc.getObjectsByLabel("myTetrahedron_x0_0y0_0z5_0")[0]
myVolume=target_object.Shape.Volume
myTxt_XYZ(0,0,0,"{:.3f}".format(myVolume)+'cm3')
def myCube(mySize):
doc.addObject("Part::Box","Box")
doc.Box.Length=mySize
doc.Box.Width=mySize
doc.Box.Height=mySize
doc.Box.Placement=App.Placement(App.Vector(0.00,0.00,0.00),App.Rotation(App.Vector(0.00,0.00,1.00),0.00))
gui_doc.getObject('Box').Transparency = 100
def myTxt_XYZ(P5x,P5y,P5z,myWedgei):
p5 = FreeCAD.Vector(P5x,P5y,P5z)
myText = Draft.makeText(myWedgei,p5)
myText.Label = myWedgei
FreeCADGui.ActiveDocument.ActiveObject.FontSize = '0.7 mm'
P1x,P1y,P1z= 0.0, 0.0, 0.0
P2x,P2y,P2z=10.0, 0.0, 0.0
P3x,P3y,P3z= 0.0,10.0, 0.0
P4x,P4y,P4z= 0.0, 0.0,10.0
doc = App.activeDocument()
gui_doc=Gui.activeDocument()
myTxt_XYZ(P1x,P1y,P1z,'x' + str(P1x) + 'y' + str(P1y)+ 'z' + str(P1z))
myCube(10.0)
myCube(10.0)
myTetrahedron(P1x,P1y,P1z,P2x,P2y,P2z,P3x,P3y,P3z,P4x,P4y,P4z)
myTetrahedron(P1x,P1y,P1z,P2x,P2y,P2z,P3x,P3y,P3z,P4x,P4y,P4z)
App.ActiveDocument.recompute()
Gui.activeDocument().activeView().viewAxonometric()
Gui.SendMsgToActiveView("ViewFit")