使用 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