You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在AutoCAD中提取DWG多段线的东/北坐标并保存为CSV?

当然可以!在AutoCAD里完全能提取多段线的坐标并保存为东/北坐标系的CSV文件,这里给你两种实用方法,按需选择:

方法1:用AutoCAD内置的DATAEXTRACTION工具(快速上手)

这是AutoCAD自带的提取工具,不用写代码就能搞定:

  • 打开你的DWG文件,在命令行输入 DATAEXTRACTION 并回车,启动提取向导。
  • 第一步选择“创建新数据提取”,给提取集起个名字,保存到合适的位置。
  • 到“定义数据源”步骤,选择“选择对象”,然后框选所有需要提取的多段线(或者按类型筛选,只选多段线),选完后确认。
  • 进入“选择特性”环节,展开几何图形分类,勾选「顶点 X 坐标」和「顶点 Y 坐标」——这里要注意,AutoCAD默认X轴对应东、Y轴对应北,刚好符合你的需求。如果需要区分不同多段线,还可以勾选「对象ID」或者「名称」。
  • 最后一步选择输出格式为「CSV」,指定保存路径,完成后就能得到包含所有顶点坐标的CSV文件了。
方法2:用AutoLISP脚本(自定义程度更高)

如果需要更灵活的格式(比如给每条多段线加标识、统一小数位数),可以用AutoLISP脚本实现,步骤如下:

  1. 打开记事本,复制粘贴下面的代码,保存为 PolyToCSV.lsp 文件:
(defun c:PolyToCSV (/ fname file poly vertices i pt)
  (setq fname (getfiled "保存CSV文件" "" "csv" 1))
  (setq file (open fname "w"))
  (write-line "多段线ID,东坐标(X),北坐标(Y)" file) ; 自定义表头
  (setq i 0)
  (while (setq poly (entsel "\n选择多段线(按回车结束选择):"))
    (setq i (1+ i))
    ; 获取多段线的所有顶点坐标
    (setq vertices (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (car poly)))))
    ; 逐个写入顶点坐标
    (foreach pt vertices
      (write-line (strcat (itoa i) "," (rtos (car pt) 2 6) "," (rtos (cadr pt) 2 6)) file)
    )
  )
  (close file)
  (princ (strcat "\nCSV文件已成功保存至:" fname))
  (princ)
)
  1. 回到AutoCAD,输入 APPLOAD 命令,加载刚才保存的 PolyToCSV.lsp 文件。
  2. 输入命令 PolyToCSV,然后依次选择需要提取的多段线(选完按回车结束),接着指定CSV文件的保存路径即可。
    这个脚本会给每条多段线分配一个ID,每个顶点单独一行,坐标保留6位小数,完全符合东/北的格式要求。
额外注意事项
  • 确认你的DWG文件坐标系是东/北:AutoCAD默认X轴为东、Y轴为北,如果你的图纸坐标系不是这样,需要先通过 UCS 或者 TRANS 命令转换坐标后再提取。
  • 如果是三维多段线,需要提取Z坐标的话,可以修改LISP代码,在写入行里加上 "," (rtos (caddr pt) 2 6) 即可。

内容的提问来源于stack exchange,提问作者Ze4

火山引擎 最新活动