首页 > 编程语言 >Python AutoCAD 文件

Python AutoCAD 文件

时间:2022-11-08 16:13:52浏览次数:70  
标签:文件 AutoCAD 另存为 Python dwg PyAutoCAD

目 录

Blog Links

1. 连接及库导入

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''
=============================
Author = Hulunbuir & DalaiNur
Email: [email protected]
Last Update: 2019.07.28 14:00
=============================
'''

from pyautocad import Autocad

acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! AutoCAD from pyautocad.")
print(acad.doc.Name)
12345678910111213141516

在D盘创建名 “AutoCAD” 的新文件夹。

2. 打开文件

CAD程序中需至少存在一个打开的图形空间,否则报错,报错内容为:无法获取Document对象。

打开文件 D:\AutoCAD\PyAutoCAD.dwg,代码如下:

acad.ActiveDocument.Application.Documents.Open("D:\AutoCAD\PyAutoCAD.dwg")
1

3. 新建文件

按如下方式新建的文件采用系统默认名称即Drawing1、Drawing2 . . . ,若更改名称,可在关闭时定义。

DrawingObj = acad.ActiveDocument.Application.Documents.Add("")
1

4. 设定当前

设定当前就是将某个文件设置为活跃文件,位于其后的所有关于绘图的代码,都将在这个文件中生效。

4.1. 已知文件名设为当前

将文件 PyAutoCAD.dwg 设为当前文件,代码如下:

acad.ActiveDocument.Application.Documents("PyAutoCAD.dwg").Activate()
1

4.2. 未知文件名设为当前

DrawingObj.Activate()  # 将New_Drawing设为当前文件。
1

5. 关闭并保存变更

5.1. 关闭已存在文件

acad.ActiveDocument.Application.Documents("PyAutoCAD.dwg").Close(True, "PyAutoCAD_已变更.dwg")
          # 关闭PyAutoCAD.dwg文件。
          # True 布尔值,为系统默认,表示打开文件后关闭前文件若发生变更,则保存变更,并另存为PyAutoCAD_已变更.dwg
          # 此时文件夹中同时存在未变更的"PyAutoCAD.dwg"和已变更的"PyAutoCAD_已变更.dwg"
          # 若第二项空缺,则新文件名为"PyAutoCAD.dwg",覆盖之前未变更的文件。
12345

5.2. 关闭新建文件

DrawingObj .Close(True, "HIT.dwg")
          # 关闭New_Drawing文件。
          # 文件夹中仅存在"HIT.dwg"一个文件。
123

5.3. 关闭当前文件

acad.ActiveDocument.Close()
          # 关闭当前文档。
12

6. 另存为

6.1. 另存为.dwg/.dxf

以下方法另存为文件的格式只能是 .dwg 和 .dxf,这与在CAD程序中,依次点击 文件 >> 另存为 相对应。

1. 当前文件另存为.dwg/.dxf

将当前文件另存为PyAutoCAD_SaveAs.dxf,文件的版本是:AutoCAD 2013 DXF。代码如下:

acad.ActiveDocument.SaveAs("D:\AutoCAD\PyAutoCAD_SaveAs", 61)
1

上一代码执行完毕后,当前文件被程序关闭,PyAutoCAD_SaveAs.dxf文件被打开,且设定为当前文件。
  参数 61 表示另存为文件的类型是AutoCAD 2013 DXF,其他常用类型如下:

版本 .dwg .dxf
AutoCAD 2000 12 13
AutoCAD 2004 24 25
AutoCAD 2007 36 37
AutoCAD 2010 48 49
AutoCAD 2013 60 61

2. 当前文件另存为.dwg/.dxf

将特定文件PyAutoCAD.dwg另存为PyAutoCAD_SaveAs.dxf,文件的版本是:AutoCAD 2013 DXF。代码如下:

acad.ActiveDocument.Application.Documents("PyAutoCAD.dwg").SaveAs("D:\AutoCAD\PyAutoCAD_SaveAs", 61)
1

6.2. 另存为.pdf文件

"略"
1

7. 尾声

以上,便是关于AutoCAD文件的一些基本代码,因篇幅有限,某些非关键功能未做详细介绍,如有疑问,欢迎邮件来询。

本文部分功能的实现离不开广大博友的大力帮助,有些功能看似简单,但第一次实现出来却是相当不容易的。

鉴于,相关示例代码相对较少,特写本文,一方面是为自己的阶段性学习做一个总结,另一方面更是为有需要的人提供多一点参考。

如果您已实现一些本文未提及的功能,还请在评论区呈现,以便为后续学习者提供更多的帮助。

胸藏文墨怀若谷,腹有诗书气自华,希望各位都能在知识的pāo子里快乐徜徉。

因本人野生学习Python,水平确实有限,文中难免有所疏漏,还请各位大神不吝批评指正。

最后,祝各位攻城狮们,珍爱生命,保护发际线!

本文部分内容,源于网络!

欢迎大家点赞、评论及转载,转载请注明出处!

为我打call,不如为我打款!

打赏可备注邮箱,本人将赠送本系列博客的全部 Python 源代码。

在这里插入图片描述

标签:文件,AutoCAD,另存为,Python,dwg,PyAutoCAD
From: https://www.cnblogs.com/agonygone/p/16870014.html

相关文章

  • python二机制文件解析
    参考连接:https://blog.csdn.net/lovelyaiq/article/details/81988185C语言解析:#include"stdlib.h"#include"stdio.h"typedefunsignedintuint32_t;typedefunsi......
  • python获取程序执行文件路径方法
    python脚本打包成exe文件获取当前路径importosimportsys#确定应用程序是脚本文件还是被冻结的exeifgetattr(sys,'frozen',False):#获取应用程序exe的路径......
  • python 如何打印函数名字?如何打印函数的注释?
    问题:python如何打印函数名字?如何打印函数的注释?解决:func_001.__name__ func_001.__doc__deffunc_001():'''函数的作用:打印输入:无......
  • Python工具箱系列(十三)
    上文介绍了使用AES算法进行文件加解密的代码。但是如果在代码中写死了(hardcode)文件名,每次要加解密文件都要去改python源代码,显然有些太笨了。为此,可以使用命令行参数来在......
  • python 检索网络
    importrequests,datetime,re,psutilimportscapy_http.httpashttpfromscapy.allimport*fromlxmlimportetreeimportwarningswarnings.filterwarnings("igno......
  • python 函数装饰器
    #函数传入的参数可以是函数deffunc1():print('1')deffunc2(func):#func为函数func()print('2')func2(func1)#12 deffunc1(func):......
  • 信呼v2.2.1文件上传漏洞复现
    前言:这个漏洞的复现呢也是借鉴了Y4tacker的博客(地址:https://blog.csdn.net/solitudi/article/details/118675321)环境配置:环境:win10phpamb下载地址:http://www.rockoa.c......
  • Python2调用xlwt库的报错:“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe
    问题描述:Python2调用xlwt库的报错,报错提示“UnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe5inposition0:ordinalnotinrange(128)”编码问题。 ......
  • python第三十课---面向对象的魔法方法,元类相关知识
    昨日内容回顾派生方法实战案例1.继承某个类2.重写被继承类里面的某个方法3.在方法内添加一些额外的操作4.最后利用super重新调用被继承类里面的方法"""super:子类......
  • 重温Python基础——操作列表
    哈喽兄弟们,今天咱们来复习一下Python基础中的列表操作,不知道各位还记得多少呢?遍历整个列表加粗样式遍历列表的所有元素,对每一个元素进行相同的操作,是我们常常所需要......