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

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

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

  1.  
  1. """
    可以直接运行,前提是你把模块安装好
    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软件,否则,脚本运行时间过长,或者会阻塞。

  1. """
  2. 可以直接run,打开一个dxf文件转换成dwg文件
  3. """
  4. from pyautocad import Autocad
  5. import uuid
  6. import os
  7. import time
  8.  
  9. def turn_dxf_to_dwg_file(dxf_file_path):
  10. """
  11. could open dxf file save as dwg file and after you save you can close
  12. the current file
  13. :param dxf_file_path:
  14. :return:
  15. """
  16. # todo not yet apply different color
  17. acad = Autocad(create_if_not_exists=True)
  18. # open CAD file
  19. acad.ActiveDocument.Application.Documents.open(dxf_file_path)
  20. random_str = str(uuid.uuid4()).replace("-", "")
  21. dwg_saved_arg = 8 # 这里的参数很重要,在网上找了很多,不是随便的数字都能成功转换的,不信的话,大可一试。
  22.  
  23. save_path = r"C:\Users\Administrator\Desktop\dwg-完成"
  24. if not os.path.exists(save_path):
  25. os.mkdir(save_path)
  26. time.sleep(0.2)
  27. saved_done = os.path.join(save_path, random_str)
  28. acad.doc.SaveAs(saved_done, dwg_saved_arg)
  29. print(saved_done)
  30. # close current file
  31. # acad.ActiveDocument.Close()
  32.  
  33. pth = r"C:\Users\Administrator\Desktop\cad-项目相关文件\cad-test-files\86b9test-turn-dwg-format.dxf"
  34. turn_dxf_to_dwg_file(pth)

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

备份参数:

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

python 处理CAD文件的更多相关文章

  1. python操作cad

    from pyautocad import Autocad # 自動連接上cad,只要cad是開着的,就創建了一個<pyautocad.api.Autocad> 對象.這個對象連接最近打開 ...

  2. 编程读写CAD文件验证

    背景 B/S应用系统,根据用户上传数据:业务数据和CAD坐标数据,经过一系列运筹算法运算后,输出一批坐标数据,作为给用户的规划结果.此时需要方便直观的给用户展示坐标数据.可选方式有两个: web页面画 ...

  3. python基础之文件处理

    读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...

  4. Python开发【第三篇】:Python基本之文件操作

    Python基本之文本操作 一.初识文本的基本操作 在python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open ...

  5. Python绘制PDF文件~超简单的小程序

    Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http:// ...

  6. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  7. python批量进行文件修改操作

    python批量修改文件扩展名 在网上下载了一些文件,因为某种原因,扩展名多了一个后缀'.xxx',手动修改的话因为文件太多,改起来费时费力,于是决定写个小脚本进行修改. 1.要点: import r ...

  8. 关于Python中的文件操作(转)

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  9. Python基础、文件处理

    一.概述 Python中操作文件是通过file对象来处理的,步骤: 指定文件的路径.操作的模式 对文件进行操作,读或写操作 关闭文件对象 f = open( '文件路径','访问模式') # 打开文件 ...

  10. python os&shutil 文件操作

    python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...

随机推荐

  1. 【安全记录】certutil实战使用总结

    前言 在先知看到一篇关于certutil命令的文章(关于certutil的探究),讲得很详细.很全面.特此记录下本人在渗透时使用certutil的一些方法. 在cmd下使用certutil下载远程文件 ...

  2. 15. 测试环境部署-linux

    抽奖项目部署文档: 1.抽奖项目使用python3开发,python版本3.x都可以 需要安装的python第三方模块 pip install django==1.9.0 这个一定要加版本号 pip ...

  3. Java多线程编程技术方案原理

    一 ,多线程相关的一些概念 1,线程和进程: 线程指的是进程中一个单一顺序的控制流, 进程中可以并发多个线程,每条线程并行执行不同的任务,被认为是一个计算资源的集合.进程不能被任务是一个应用,因为有些 ...

  4. 用 go 实现多线程下载器

    本篇文章我们用Go实现一个简单的多线程下载器. 1.多线程下载原理 通过判断下载文件链接返回头信息中的 Accept-Ranges 字段,如果为 bytes 则表示支持断点续传. 然后在请求头中设置 ...

  5. 【转载】 VCS编译的基本参数,//code细节,注释

    https://www.bilibili.com/read/cv18255106?spm_id_from=333.999.0.0

  6. ptyhon基础课程_2

    10 输入 # 例一 user_name = input ("请输入姓名:") message = user_name + "shaobing" print ( ...

  7. nginx(一) の 入门解析

    OSI 模型的前三层 应用层: 每一个应用程序自定义的协议 表示层: 数据的压缩与解压缩.图片的编码与解码 会话层: 会话管理(session) 和 网络验证 .包括断点续传和服务器验证用户登录等.比 ...

  8. ReactNative 的一些工程化阻碍

    2017年我们团队就开始使用 ReactNative 开发了一些内部管理工具,由于性能及开发体验一般,老是碰到迷一样的问题我们几乎都快放弃使用了,后来随着设备性能的提升,以及框架本身的改进,很多问题得 ...

  9. Delphi 从字符串中提取数字

    function GetNumberFromStr(strIn: string; sFlag: string): string; var i: Integer; tempStr: string; be ...

  10. python性能测试工具locust

    1.概述: 1.我们对目前比较流行的几款压测工具进行了调研.Jmeter与LoadRunner基于多线程实现并发,多线程由操作系统决定,由于上下文切换频繁.内核调度频繁,单台机器很难产生大量线程并发. ...