前言:
此刻各位老铁们对“win7c语言编程软件”可能比较注意,你们都需要知道一些“win7c语言编程软件”的相关文章。那么小编同时在网络上汇集了一些关于“win7c语言编程软件””的相关知识,希望咱们能喜欢,各位老铁们一起来了解一下吧!python用Win32com连接excel与CAD实现自动绘图
# 前言
本人主要从事空调设备研发和设计,在非标产品设计过程中经常会遇到相似结构的零部件重复性绘图,在此过程中会耗费设计师大量工作,如何提高工作效率,减少设计错误,是急需解决的问题,在此情况下, 我根据我的经验及借鉴其他博主介绍利用python编写了自动绘图软件,此软件目前已经解决我司部门绘图问题,在后续过程中将不断更新自动绘图软件的开发过程及遇到的坑,供大家学习借鉴,有不足之处还希望大家指出。
# 一、连接excel
目前本人只找到Win32com库对excel和CAD实现连接,所以在这里主要以Win32com为主。代码如下:
import win32com.clientapp = win32com.client.Dispatch('Excel.Application')# 后台运行,不显示,不警告app.Visible = 1app.DisplayAlerts = 0 self.xlBook=app.Workbooks.Add()# 此处一定注意不能用绝对路径,如果使用了绝对路径,程序打包后其他电脑不能打开,因为我采用了类方法,所以此处有self,如果不是在类里面可以不用self.xlBook.Save()self.ws = app.Worksheets('Sheet1')
# 二、连接CAD
<font color=#999AAA >CAD的连接也是利用Win32com,此处直接连接CAD就行,需注意附录代码运行前提需先打开CAD并新建一个窗口。代码如下:
wincad = win32com.client.Dispatch("AutoCAD.Application") doc = wincad.ActiveDocument doc.Utility.Prompt("Hello! Autocad from pywin32com.\n") msp = doc.ModelSpace
# 三、读取excel中数据
<font color=#999AAA >CAD的连接也是利用Win32com,此处直接连接CAD就行,需注意附录代码运行前提需先打开CAD并新建一个窗口。代码如下:
excel表数据
# 判断excel表中有多少有效数据sum1 = 0while self.ws.cells(sum1 + 2, 2).value !=None: # 读取excel中数据,数据从第二行第二列开始读取 pnts1 = self.ws.cells(sum1 + 2, 2).value pnts2 = self.ws.cells(sum1 + 2, 3).value # 起点坐标 point_x=sum1*7000 point_x1 = point_x+pnts1 PointCoordinates(point_x,pnts1,pnts2) sum1 += 1
# 四、在CAD中根据决定坐标点绘制图形
# 数据转化,由于win32com中AddPolyLine函数中参数要求数据类型,而python生成的数据类型多为变体类型,所以需要转化
def vtfloat(lst):return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, lst)def vtpnt(x, y, z=0):"""坐标点转化为浮点数"""return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z)) def PointCoordinatesIn(point_x, lenth, width): pnts = [point_x, 0, 0, point_x , width / 2 , 0, point_x , width / 2 , 0, point_x ,width / 2 , 0, point_x + lenth ,width / 2 , 0, point_x + lenth ,width / 2 , 0, point_x + lenth, width / 2, 0, point_x + lenth , 0, 0 ] pnts = vtfloat(pnts) pline_obj = msp.AddPolyLine(pnts)
# 五、结语
以上便是目前我做的一些工作,后续将不断更新,记录我的开发进度,也分析我在此过程中遇到的各种问题,供后来人学习。每次成果的分享都是经过我不断学习及尝试后的结果,也避免后来人少走弯路,如有不足之处望大神指正,改进;
# 六、参考文献
1、Python 二次开发 AutoCAD 简介:[]
标签: #win7c语言编程软件