如何在Windows命令提示符中运行Openscad

4

我正在尝试在Windows 7的命令提示符下运行OpenScad。但是我无法使其正常工作。我将以下目录添加到路径中:

"C:\Program Files\OpenSCAD\"

我尝试运行以下脚本:

from os import listdir
from subprocess import call

files = listdir('.')
for f in files:
    if f.find(".scad") >= 0:            # get all .scad files in directory
        of = f.replace('.scad', '.stl') # name of the outfile .stl
        cmd = 'call (["openscad.com",  "-o", "{}",  "{}"])'.format(of, f)   #create openscad command
        exec(cmd)

我尝试使用openscad、openscad.exe、openscad.com,但都没有成功。我收到的错误信息是:
Traceback (most recent call last):
  File "C:\Users\Desktop\scad2stl.py", line 9, in <module>
    exec(cmd)
  File "<string>", line 1, in <module>
  File "C:\Users\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 247, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Users\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 676, in __init__
    restore_signals, start_new_session)
  File "C:\Users\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 955, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The specified file could not be found

有什么建议吗?

错误意味着找不到openscad.exe的路径。请检查是否真的将openscad.exe的路径设置在Path中。如果路径正确设置,我可以在Windows 7和10上运行代码。在Python 3.5及更高版本中,subprocess.call()可以被subprocess.run()替换,详见我之前回答的编辑部分。 - a_manthey_67
2个回答

0
打开记事本。 粘贴以下文本:
@echo off
"C:\Program Files\OpenSCAD\openscad.com" %*
  1. 将文件保存为 openscad.bat,存放在包含在您 PATH 环境变量的目录下(例如 C:\Windows\System32)。
  2. 关闭并重新打开命令提示符以应用更改。
  3. 按照需求使用 openscad 命令。

目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Friedrich

0

我刚看到这个帖子,我已经用Windows PowerShell使它正常工作了,但是不能在CMD上工作。例如,以下命令在CMD上不起作用>

openscad -o render.png --imgsize=2048,2048 assembly.scad

但是在PowerShell上可以工作(注意开头的"./"):

./openscad -o render.png --imgsize=2048,2048 assembly.scad

希望能有所帮助。 最好的问候


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接