使用 python 为 FreeCADCmd.exe 传递多个命令
pass multiple commands for FreeCADCmd.exe with python
如何为 FreeCADCmd.exe 和 python 传递多个命令?例如这个命令:
import FreeCAD
import Part
import Mesh
shape = Part.Shape()
shape.read('my_shape.step')
doc = App.newDocument('Doc')
pf = doc.addObject("Part::Feature","MyShape")
pf.Shape = shape
Mesh.export([pf], 'my_shape.stl')
这是我的代码,但它在第一个命令后卡住了,我的意思是“FreeCADCmd.exe”:
os.chdir("D:\program\FreeCAD 0.19\bin")
os.system("""FreeCADCmd.exe && import FreeCAD && import Part && import Mesh && shape = Part.Shape() && shape.read('D:\coupling_base.stp') && doc = App.newDocument('Doc') && pf = doc.addObject("Part::Feature","MyShape") && pf.Shape = shape && Mesh.export([pf], 'D:\z1.stl')""")
&& 似乎不起作用。
os.system()
函数在后台的终端中运行命令,这通常不是调用其他程序的好方法。相反,您应该使用子流程模块。
在终端中尝试 运行 您在 os.system()
调用中的命令,您会发现它在那里也不起作用。这是因为它逐条运行由 && 分隔的每个命令,而不是将后续命令发送到第一个程序中。
在这种情况下,FreeCADCmd.exe 看起来像是一个 Python 解释器,所以也许您可以尝试将命令存储在 Python 脚本中,然后 运行脚本?
将您的命令放入文件中。喜欢 'myfile.py'
那么运行
FreeCADCmd myfile.py
如何为 FreeCADCmd.exe 和 python 传递多个命令?例如这个命令:
import FreeCAD
import Part
import Mesh
shape = Part.Shape()
shape.read('my_shape.step')
doc = App.newDocument('Doc')
pf = doc.addObject("Part::Feature","MyShape")
pf.Shape = shape
Mesh.export([pf], 'my_shape.stl')
这是我的代码,但它在第一个命令后卡住了,我的意思是“FreeCADCmd.exe”:
os.chdir("D:\program\FreeCAD 0.19\bin")
os.system("""FreeCADCmd.exe && import FreeCAD && import Part && import Mesh && shape = Part.Shape() && shape.read('D:\coupling_base.stp') && doc = App.newDocument('Doc') && pf = doc.addObject("Part::Feature","MyShape") && pf.Shape = shape && Mesh.export([pf], 'D:\z1.stl')""")
&& 似乎不起作用。
os.system()
函数在后台的终端中运行命令,这通常不是调用其他程序的好方法。相反,您应该使用子流程模块。
在终端中尝试 运行 您在 os.system()
调用中的命令,您会发现它在那里也不起作用。这是因为它逐条运行由 && 分隔的每个命令,而不是将后续命令发送到第一个程序中。
在这种情况下,FreeCADCmd.exe 看起来像是一个 Python 解释器,所以也许您可以尝试将命令存储在 Python 脚本中,然后 运行脚本?
将您的命令放入文件中。喜欢 'myfile.py' 那么运行
FreeCADCmd myfile.py