注意:如下的两个脚本都是我自己亲自试过的,可以运行得到结果!可以直接运行!可以直接运行!

网上的中文api能找到的不够全,工作中有用到部分功能,自己从中文英文资料里面找到一些,这里做一些总结。

画图api:这里保存的文件是dxf类型。


"""
可以直接运行,前提是你把模块安装好
ezdxf模块生成dxf文件画线、圆、多边形、填充颜色
"""
import ezdxf # 画图的基本功能,这个库会比较容易找到api,用起来还比较方便。生成的dxf文件的2000版本
import uuid
import os

save_file_path = r"D:\logs"

def apply_colour():
"""
写字,填充功能,画圆,画线,画多边形
:return:
"""
doc = ezdxf.new('R2000') # ezdxf 这个模块目前能处理的cad文件是2000版本
msp = doc.modelspace()
msp.add_text(
'code change the world',
dxfattribs={
'layer': 'TEXTLAYER'
}).set_pos((0, 0.2), align='CENTER') # 写字

msp.add_line(
(153.0, 34.0),
(173.0, 127.0),
dxfattribs={'color': 150, 'lineweight': 60}
) # 画线 color 数值范围1-255

# 设置4边形4个点坐标
rect_points_outer = [(1.0, 1.0), (8.0, 1.0), (8.0, 8.0), (1.0, 8.0)]
msp.add_lwpolyline(
rect_points_outer,
dxfattribs={"closed": True}
) # 画多边形。这里画的是4边形,如果需要画多边形,把坐标设置好排列出来即可。

msp.add_circle(
(10, 20),
1.5
) # 画圆

hatch = msp.add_hatch(color=2) # 填充功能,颜色设置的rgb值
hatch.paths.add_polyline_path(
[
(0, 0), (10, 10), (0, 10)
],
is_closed=1,
flags=16
) # 设置3边形,并填充颜色
hatch.paths.add_polyline_path(
[
(0, 0), (0, 5), (5, 5), (5, 0)
],
is_closed=1,
flags=0
) # 设置4边形并填充颜色

random_str = str(uuid.uuid4()) # 设置随机数命名新文件
new_file = os.path.join(
save_file_path, "{}.dxf".format(random_str)
)
print(new_file)
doc.saveas(new_file)

apply_colour()

把dxf类型转变成dwg格式:值得注意的是,因为Autocad会调用cad内核,所以,建议在运行脚本之前,先在跟脚本同一电脑上打开cad软件,否则,脚本运行时间过长,或者会阻塞。

"""
可以直接run,打开一个dxf文件转换成dwg文件
"""
from pyautocad import Autocad
import uuid
import os
import time def turn_dxf_to_dwg_file(dxf_file_path):
"""
could open dxf file save as dwg file and after you save you can close
the current file
:param dxf_file_path:
:return:
"""
# todo not yet apply different color
acad = Autocad(create_if_not_exists=True)
# open CAD file
acad.ActiveDocument.Application.Documents.open(dxf_file_path)
random_str = str(uuid.uuid4()).replace("-", "")
dwg_saved_arg = 8 # 这里的参数很重要,在网上找了很多,不是随便的数字都能成功转换的,不信的话,大可一试。 save_path = r"C:\Users\Administrator\Desktop\dwg-完成"
if not os.path.exists(save_path):
os.mkdir(save_path)
time.sleep(0.2)
saved_done = os.path.join(save_path, random_str)
acad.doc.SaveAs(saved_done, dwg_saved_arg)
print(saved_done)
# close current file
# acad.ActiveDocument.Close() pth = r"C:\Users\Administrator\Desktop\cad-项目相关文件\cad-test-files\86b9test-turn-dwg-format.dxf"
turn_dxf_to_dwg_file(pth)

注意:我自己安装的2007版本的Autocad软件,可以直接打开转换成dwg格式的文件。Autocad软件我也不熟,不知道转换格式后是哪个版本的dwg。

备份参数:

dwt_dwl = [14, 26]  # 这里会生成dwt和dwl两个文件
dwg_dwl = [8, 12, 24, 14, 26] # 其中:14、26有dwt格式,但是用autoCAD打开,确实是dwg,
内部有转换可能。
dxf_ = [1, 13, 25, 37] # 这里是单纯生成一个dxf文件的参数

最新文章

  1. jieba中文分词的.NET版本:jieba.NET
  2. Spring 学习笔记 8. 尚硅谷_佟刚_Spring_使用外部属性文件
  3. 微信公众平台消息接口开发之微信浏览器HTTP_USER_AGENT判断
  4. bzoj1066
  5. [Leetcode][JAVA] Word Ladder
  6. ejabberd常见配置说明
  7. H.264学习笔记之一(层次结构,NAL,SPS)
  8. 设计管理员表;webservice用于网络安全的高端内提供服务的
  9. D14
  10. 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大
  11. MySql数据库第一天
  12. 带着萌新看springboot源码10(springboot+JdbcTemplate+druid)
  13. Cocos2d-x中文显示乱码
  14. PXE:另类方式启动 centos live
  15. angular 2 animation 结构笔记 version 4.2.2
  16. 2--Python入门--Python数据集合类型--列表
  17. [转]用GSON 五招之内搞定任何JSON数组
  18. C程序第四次作业
  19. WinForm如何调用Web Service
  20. RS交叉表按照预定的节点成员排序

热门文章

  1. 胖AP组建小型企业WLAN
  2. WPF 文本逐字一个个出现的动画效果
  3. vue相关组件用法
  4. Linux_CMD_FOR_FILE&FOLDER
  5. AWT+Swing实现百度图像识别
  6. python随机数模拟
  7. MQTT 客户端出现连接订阅等问题时如何排查?
  8. 力扣53. 最大子数组和(dp)
  9. Twenty-seven
  10. 备份还原ESXi 中的虚拟机快照