python批量将CAD中的每个图分别转化为对应的PDF(cad转pdf)
需要在cad上选择左下角和右小角的坐标,会有提示,注意看即可

通过交互方式将一个CAD中的每个图纸分别转为一个pdf,简单易操作!!

其中有一部分是借鉴各路大神的,其中链接都在下方。另外也参阅了acadauto.chm,以及AutoCADActiveX和VBA参考明经翻译版).chm(打赏可发送参考文件,私信我邮箱即可)

# -*- coding: utf-8 -*-
"""
Created on Wed Aug 26 13:55:01 2020@author:
"""import win32com.client
import pythoncom
import numpy as npdef scr():acad = win32com.client.Dispatch("AutoCAD.Application")# AutoCAD.Application.19为 ProgIDacaddoc = acad.ActiveDocumentacaddoc.Utility.Prompt("Hello AutoCAD\n")acadmod = acaddoc.ModelSpaceprint('当前处理文件的目录为:%s'%(acaddoc.path))print('当前处理文件名:%s'%(acaddoc.name))def APoint(x, y):"""坐标点转化为浮点数"""# 需要两个点的坐标return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y))layout = acaddoc.layouts.item('Model') # 先来个layout对象plot = acaddoc.PlotRet_dict = dict()RetVa = layout.GetPlotStyleTableNames() #获取当前可用的打印样式名称RetVal=filter(lambda x:x[-3:] !='stb' ,list(RetVa))#将后缀为stb的文件过滤,否则选择stb格式的文件会报错print('可用的打印样式如下:')for re_index,name in enumerate(list(RetVal)):Ret_dict[re_index] = nameprint(str(re_index) + ' - ' + name)sty_sh = input('请选择打印样式(输入数字即可,tips:选择格式必须为ctb):')print('您选的打印样式为:%s'%(Ret_dict[eval(sty_sh)]))acaddoc.SetVariable('BACKGROUNDPLOT', 0) # 前台打印layout.StyleSheet = Ret_dict[eval(sty_sh)] # 选择打印样式layout.PlotWithLineweights = True # 打印线宽layout.ConfigName = 'DWG To PDF.pc3' # 选择打印机layout.PlotRotation = 0 # 横向打印layout.StandardScale = 0# 图纸打印比例layout.CenterPlot = True # 居中打印layout.PlotWithPlotStyles = True # 依照样式打印layout.PlotHidden = False # 隐藏图纸空间对象cad_number = eval(input('请输入图的张数:'))zb_array = np.zeros([cad_number,4])#用来储存图框的坐标点paper_size = []for zb in range(cad_number):paper_in = input('请输入打印的第--%s--张图的尺寸(tip:A1→1,A2→2,A3→3,A4→4):'%(zb+1))paper_size.append(paper_in)print('请打开CAD点击坐标点,连续选择两个点,第一个点为**左下角**,第二个为**右上角**')for zb_2 in range(2):#防止点击错误出现出现闪退xun = 1while xun:try:zb_scr = acaddoc.Utility.GetPoint()#通过鼠标点击获取坐标zb_array[zb][zb_2] = zb_scr[0]#将x坐标保存到数组中zb_array[zb][zb_2+2] = zb_scr[1]#将坐标y保存到数组中xun = 0except:print('重新选择(请点击正确区域)')if zb_2 == 0:print('**左**下角的坐标点为:%s'%(list(zb_scr)))else:print('**右**上角的坐标点为:%s'%(list(zb_scr)))for po in range(cad_number):if paper_size[po] == '1':layout.CanonicalMediaName = 'ISO_full_bleed_A1_(841.00_x_594.00_MM)' elif paper_size[po] == '2':layout.CanonicalMediaName = 'ISO_full_bleed_A2_(594.00_x_420.00_MM)'elif paper_size[po] == '3':layout.CanonicalMediaName = 'ISO_full_bleed_A3_(420.00_x_297.00_MM)' else:layout.CanonicalMediaName = 'ISO_full_bleed_A4_(297.00_x_210.00_MM)' po1 = APoint(zb_array[po][0],zb_array[po][2])po2 = APoint(zb_array[po][1],zb_array[po][3])layout.SetWindowToPlot(po1, po2)#设置打印窗口的坐标layout.PlotType = 4#设置安装坐标窗口打印,若无此行,按照窗口显示的打印plot.PlotToFile(acaddoc.path +'/' + str(po+1) + '-' + acaddoc.name[:-4] + ".pdf")print('---' + str(po+1) + '-' + acaddoc.name[:-4] + ".pdf---文件已保存到" + acaddoc.path)print('处理完毕')x = 1
while x:scr()x = eval(input('是否继续计算,若是请输入1,否则请输入0:'))

参考博主链接:

http://blog.sina.com.cn/s/blog_ad9ff24c0102uwah.html

https://blog.csdn.net/Hulunbuir/article/details/83715279

https://blog.csdn.net/weixin_42446662/article

https://blog.csdn.net/xiaokcehui/article/details/48492915

https://blog.csdn.net/qq_44792233/article/details/102946651

python批量将CAD中的每个图分别转化为对应的PDF(cad转pdf)相关推荐

  1. python 批量增加文件前缀_用python批量提取视频中的音频文件

    安装MoviePy pip3 install MoviePy 安装成功后需要打开MoviePy所在的文件夹 C:PythonLibsite-packagesmoviepy 打开config_defau ...

  2. python给视频添加声音_用python批量提取视频中的音频文件

    安装MoviePypip3 install MoviePy 安装成功后需要打开MoviePy所在的文件夹C:\Python\Lib\site-packages\moviepy 打开config_def ...

  3. CAD中怎么生成图块表格?CAD图块表格使用技巧

    在浩辰CAD电气软件中进行强电平面设计时,有两种设备表表格类型:图块表格和对象表格.之前的CAD画图教程中给大家简单介绍了两种表格类型,为了让大家对此有更深入的了解,接下来的CAD画图教程就让小编来给 ...

  4. CAD中插入外部参照字体会变繁体_为什么CAD中将图纸作为图块插入时不成功?

    下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载  异常.退出  文件及输入输出  基本操作技巧  设置及相关问题  界面和显示  快捷键  视图设置 选择及组 坐标输入.定位  ...

  5. python绘制基因结构图_使用Python绘制GWAS分析中的曼哈顿图和QQ图

    [前言]其实这篇文章是为了简单介绍一下geneview的用法,它是一个Python高级库,建立在matplotlib的基础之上,专门用于基因组数据的可视化,目的是为了使创建高大上(精致)的基因组数据图 ...

  6. 如何利用Python批量将Word中的信息提取到Excel?

    大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共有近2600条类似格式的表格细栏,每个栏目包括的信息有: 日期 发文单位 ...

  7. Python 批量提取Excel中的图片,图片文件名按指定列存储

    openpyxl 以及 openpyxl_image_loader,conda或者pip无法安装的话,官网下载whl,然后pip安装本地包 [注意]:图片必须在单元格内,不能压过单元格边界 from ...

  8. CAD中插入外部参照字体会变繁体_为什么CAD插入外部参照时有些文字消失了?

    下面是本公众号文章分类目录,点击可打开分类文章列表: 安装卸载 文件格式.输入输出  异常.退出  基本操作技巧 设置及相关问题 界面和显示相关问题 CAD快捷键  视图设置和调整选择.组  坐标系. ...

  9. CAD中插入外部参照字体会变繁体_为什么CAD插入相同图框但尺寸却相差很多?

    下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: CAD安装卸载  异常.退出  文件及输入输出  基本操作技巧  各种设置及相关问题  界面和显示相关问题  快捷键  视图设置和调整   ...

最新文章

  1. springJDBC实现查询方法二
  2. 如何建设数字中国?人民日报推出四个整版观察
  3. leftjoin及多个leftjoin执行顺序
  4. 第五章:管理数据库存储结构
  5. Caffe官方教程翻译(8):Brewing Logistic Regression then Going Deeper
  6. framework dyld: Symbol not found: _OBJC_CLASS_xxx
  7. Csv解析CsvFile
  8. SVN:安装svn进行上传和检出文件的常用命令
  9. 手把手打造开源新监控利器check_mk
  10. SQL Unicode
  11. java 下载视频文件
  12. 心理学行为矫正——手机娱乐过度自我管理企划案
  13. xp系统访问网络共享服务器,XP系统打开网络和共享中心的两种方法
  14. CobaltStrike木马免杀代码篇之python反序列化分离免杀(一)
  15. 让你两分钟明白什么是ERP
  16. 浅读C Primer Plus——C语起源
  17. fmri|SPM contrast manager
  18. 微信小程序之左右布局
  19. 数据通信协议的简介(数据通信协议和网络协议有什么区别?)
  20. 海康摄像头监控视频播放详解

热门文章

  1. 长城宽带网线--有线路由器--无线路由器(手机wifi上网)
  2. 弄它!!!了解5G未来趋势就等于了解商机!赶超马云爸爸不是梦!
  3. 通俗易懂讲解TCP流量控制机制,了解一下
  4. 统一资源定位器:URL的组成
  5. T400s + 双飞卡(42T0961) + 南神卡 上网设置
  6. java 积分功能实现_简单积分系统的设计和实现
  7. QT+opencv实现简单的图像处理界面
  8. 解决方案:用SpreadJS为烟草行业信息化建设赋能
  9. airodump-ng 界面参数比较详细的解释
  10. 刘大拿python_零基础Python知识点回顾(一)