运行 来自 python 的 SolidWorks 宏
Running a SolidWorks Macro from python
我已经开始了一个项目,我必须 link SolidWorks 和 python。基本上我在 Python 上写了一个 txt 文件,其中包含控制点的坐标,然后由 SolidWorks 读取。我在 SolidWorks 上写了一个宏来保存新修改的 STL 文件。我很想 运行 来自 python 的宏,这样我就可以将新文件导入回 python。谁能帮忙?
干杯
这是我的代码及其作用:
import numpy as np
import os
def GenerateCoordinates(low,high,size):
X=np.random.randint(low,high,size)
Y=np.random.randint(low,high,size)
#Z=np.random.randint(low,high,size)
return X,Y
X=GenerateCoordinates(0,6,7)[0]
Y=GenerateCoordinates(0,4,7)[1]
k=0
sketch_number=1 #Generate coordinates
g=open('Cdd.txt','w')
for i in range(1,len(X)):
g.write('CoordinatesX'+str(i)+'='+str(X[i])+'\n')
g.write('"D'+str(k)+'@Sketch'+str(sketch_number)+'"'+'=CoordinatesX'+str(i)+'\n')
k+=1
g.write('CoordinatesY'+str(i)+'='+str(Y[i])+'\n')
g.write('"D'+str(k)+'@Sketch'+str(sketch_number)+'"'+'=CoordinatesY'+str(i)+'\n')
k+=1
#g.write('CoordinatesZ'+str(k)+'='+str(Z[i])+'\n')
#g.write('D'+str(k)+'@Sketch'+str(sketch_number)+'=CoordinatesZ'+str(k)+'\n')
g.close() #writes coordinates in a txt file then saves the txt file
os.popen('"C:/Users/Public/Desktop/Program Files/SOLIDWORKS Corp/SOLIDWORKS/.exe"') #I want to call the macro that rebuilds the solidworks part with the modified coordinates.
更新以防有人遇到同样的问题:\m 不应包含在括号中。因此,对于我的示例,它将是:
os.popen('"C:/Users/Public/Desktop/Program Files/SOLIDWORKS Corp/SOLIDWORKS/.exe" \m "宏路径"').然而,不幸的是,这只是打开宏而没有 运行 它。
我已经开始了一个项目,我必须 link SolidWorks 和 python。基本上我在 Python 上写了一个 txt 文件,其中包含控制点的坐标,然后由 SolidWorks 读取。我在 SolidWorks 上写了一个宏来保存新修改的 STL 文件。我很想 运行 来自 python 的宏,这样我就可以将新文件导入回 python。谁能帮忙? 干杯
这是我的代码及其作用:
import numpy as np
import os
def GenerateCoordinates(low,high,size):
X=np.random.randint(low,high,size)
Y=np.random.randint(low,high,size)
#Z=np.random.randint(low,high,size)
return X,Y
X=GenerateCoordinates(0,6,7)[0]
Y=GenerateCoordinates(0,4,7)[1]
k=0
sketch_number=1 #Generate coordinates
g=open('Cdd.txt','w')
for i in range(1,len(X)):
g.write('CoordinatesX'+str(i)+'='+str(X[i])+'\n')
g.write('"D'+str(k)+'@Sketch'+str(sketch_number)+'"'+'=CoordinatesX'+str(i)+'\n')
k+=1
g.write('CoordinatesY'+str(i)+'='+str(Y[i])+'\n')
g.write('"D'+str(k)+'@Sketch'+str(sketch_number)+'"'+'=CoordinatesY'+str(i)+'\n')
k+=1
#g.write('CoordinatesZ'+str(k)+'='+str(Z[i])+'\n')
#g.write('D'+str(k)+'@Sketch'+str(sketch_number)+'=CoordinatesZ'+str(k)+'\n')
g.close() #writes coordinates in a txt file then saves the txt file
os.popen('"C:/Users/Public/Desktop/Program Files/SOLIDWORKS Corp/SOLIDWORKS/.exe"') #I want to call the macro that rebuilds the solidworks part with the modified coordinates.
更新以防有人遇到同样的问题:\m 不应包含在括号中。因此,对于我的示例,它将是: os.popen('"C:/Users/Public/Desktop/Program Files/SOLIDWORKS Corp/SOLIDWORKS/.exe" \m "宏路径"').然而,不幸的是,这只是打开宏而没有 运行 它。