python用Win32com连接excel与CAD实现自动绘图

前言

本人主要从事空调设备研发和设计,在非标产品设计过程中经常会遇到相似结构的零部件重复性绘图,在此过程中会耗费设计师大量工作,如何提高工作效率,减少设计错误,是急需解决的问题,在此情况下, 我根据我的经验及借鉴其他博主介绍利用python编写了自动绘图软件,此软件目前已经解决我司部门绘图问题,在后续过程中将不断更新自动绘图软件的开发过程及遇到的坑,供大家学习借鉴,有不足之处还希望大家指出。

一、连接excel

目前本人只找到Win32com库对excel和CAD实现连接,所以在这里主要以Win32com为主。代码如下:

import win32com.client
app = win32com.client.Dispatch('Excel.Application')
# 后台运行,不显示,不警告
app.Visible = 1
app.DisplayAlerts = 0
self.xlBook=app.Workbooks.Add()
# 此处一定注意不能用绝对路径,如果使用了绝对路径,程序打包后其他电脑不能打开,
因为我采用了类方法,所以此处有self,如果不是在类里面可以不用
self.xlBook.Save()
self.ws = app.Worksheets('Sheet1')

二、连接CAD

CAD的连接也是利用Win32com,此处直接连接CAD就行,需注意附录代码运行前提需先打开CAD并新建一个窗口。代码如下:

 wincad = win32com.client.Dispatch("AutoCAD.Application")doc = wincad.ActiveDocumentdoc.Utility.Prompt("Hello! Autocad from pywin32com.\n")msp = doc.ModelSpace

三、读取excel中数据

CAD的连接也是利用Win32com,此处直接连接CAD就行,需注意附录代码运行前提需先打开CAD并新建一个窗口。代码如下:

         excel表数据

# 判断excel表中有多少有效数据
sum1 = 0
while self.ws.cells(sum1 + 2, 2).value !=None:# 读取excel中数据,数据从第二行第二列开始读取  pnts1 = self.ws.cells(sum1 + 2, 2).valuepnts2 = self.ws.cells(sum1 + 2, 3).value# 起点坐标point_x=sum1*7000point_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 简介:[https://blog.csdn.net/Hulunbuir/article/details/83715279?utm_medium=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-2.nonecase&dist_request_id=3834095b-09c6-43c2-8c59-e197c51c21e2&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-2.nonecas]

python用Win32com连接excel与CAD实现自动绘图相关推荐

  1. python用win32com处理excel表格

    今天一同事让处理一个excel,把一个excel里固定位置的内容读取写到另一个excel中的固定位置里,查了一些资料,python有好多处理excel的模块,对比之后感觉用win32com来处理这个问 ...

  2. python如何清空excel表格_利用python操作win32com删除excel工作表

    win32com是一个操作excel的接口.在使用python操作win32com的时候,默认是displayalerts的,而很多操作我们都是默认会操作,所以要关闭掉displayalerts. 下 ...

  3. python使用win32com读写excel的问题

    (win32com 读写 excel时候,open函数不能打开相对路径文档) 问题如下(请问各位大神如何解决相对路径下打开文档): 打开同.py相同路径下的a.xlsx文档,报错 from win32 ...

  4. python 使用win32com 操作excel

    举例1 import win32com.client as win32 xl = win32.Dispatch('Excel.Application') xl.Visible = True xl.Wo ...

  5. python关闭excel进程_python win32com关闭Excel进程

    试图通过python改变Excel_sheet,并完全混淆进程恢复.python win32com关闭Excel进程 import win32com.client class XlsClass: de ...

  6. 调研-python使用win32com模块操纵excel

    文章目录 背景介绍 其他工具 简单使用 wps和excel访问的API不同的问题 尝试1: 尝试2: 尝试3 尝试4 尝试5 正道的光 背景介绍 使用的工具是:pywin32 PS:不是网上其他有些弄 ...

  7. Python win32com 控制excel自动刷新保存数据并截图发送到企业微信

    Python win32com 控制excel自动刷新保存数据并截图发送到企业微信 业务需求 功能模块 爬虫 运行excel宏,刷新保存excel数据 指定区域截图 发送图片到企业微信 业务需求 每天 ...

  8. python win32com 操作excel (tcy)

    本篇主要讲述win32com操作excel的读写的基本语法及用途实例. 并在easyExcel类的基础上封装了一个简单的excel VBA python操作.(90%变更)特点: 1)能够多个工作薄多 ...

  9. python连接excel存放数据_有了这篇python操作Excel学习笔记,以后储存数据 办公很轻松!...

    最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开始直接用Excel来处理.但是做着做着发现重复的劳动其实并没有多大的意义,于是就想着写个小工具帮着处理.以前正好在一本书上看到 ...

最新文章

  1. 计算一个全息图片的两个设想
  2. Editplus查找替换的正则表达式应用说明
  3. 学习机器学习:这10年我们能在各自的领域做点什么?
  4. XCode: 兼容ARC和non-ARC
  5. jsonp-反向代理-CORS解决JS跨域问题的个人总结
  6. angular五大服务顺序,angularJS $事件处理程序的触发顺序
  7. 理解一个类里边设置两个同名函数
  8. 中电福富外包offer要等多久_记一次外包经历
  9. 《天天数学》连载37:二月六日
  10. SAP License:SAP顾问如何写运维报告
  11. MVC.Net:压缩/保存图片缩略图
  12. Atitit 短信验证的漏洞 目录 1.1. APP读取短信 1 1.2. 手机上访问的业务来说,短信验证码就没那么独立了 1 1.3. 短信保管箱” 1 1.4. 自动把短信备份到云端的功能。 2
  13. 计算机windows解压文件,win7怎么用DOS命令解压缩文件 DOS解压文件方法
  14. 实验高中计算机,仿真物理实验室高中完整版
  15. Python数据分析U3-matplotlib可视化高级
  16. 实时计算 java基础:类的结构之五:内部类
  17. 360手机刷机失败变黑砖,救砖教程
  18. 小程序canvas文字信息绘制图片,模拟器正常保存图片,真机无法保存图片报错downloadFile:fail downloadFile protocol must be http or https
  19. mysql 进入_如何进入MySQL
  20. Python 模拟Hermite Polynomial厄米特多项式

热门文章

  1. 计算机课信息化大赛说课稿,2017信息化教学大赛说课稿——吴小红
  2. excelize-golang中excel表格内容读取
  3. DML语句的Returning...Into...
  4. 萌萌哒的八戒buuctf
  5. python repr_Python 的输入输出(一):str, repr和格式化输出
  6. 程序员计算机二级考什么好,计算机二级考什么好?要最简单的.
  7. 使用pheatmap画热图报错
  8. js运算符功能和运算规则
  9. anaconda spyder使用技巧
  10. 使用Appium Inspector查看手机界面布局