AutoCAD选取多线段自动导出其所有坐标点为csv文件

背景

我自己规划3D打印的路径时,使用AutoCAD进行具体的路径规划,但是苦于其多线段的坐标难以直接导出,摸索多日未得善终。
而后在ChatGPT4的建议下使用AutoCAD自带的代码语言AutoLisp,及其编辑器 Visual Lisp,实现选取多线段自动导出其所有坐标点为csv文件的功能。
具体代码由ChatGPT4生成,这里放在最后。

具体操作方式

  1. 使用的语言和编辑器 :AutoLisp和Visual LISP 编辑器

编辑器打开的位置

代码片段

// An highlighted block
; 定义一个新的LISP函数
(defun c:GetPolylinePointsCSV ()
  ; 获取当前文档的名称
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (setq filename (vla-get-Name doc))

  ; 提取文件名(无扩展名)
  (setq filetitle (vl-filename-base filename))

  ; 设置输出CSV文件的路径和文件名
  (setq csvpath (strcat filetitle "_polyline_points.csv"))

  ; 提示用户选择一个多项段
  (setq ss (ssget "_:S" '((0 . "LWPOLYLINE"))))
  (if ss
    (progn
      ; 如果用户成功选择了一个多项段
      (setq pline (ssname ss 0))
      ; 打开或创建一个CSV文件来保存坐标
      (setq f (open csvpath "w"))
      ; 写入CSV头部(如果需要)
      ; (write-line "X, Y" f)
      ; 初始化顶点索引
      (setq vtx 0)
      ; 循环遍历多项段的所有顶点
      (while (setq pt (vlax-curve-getPointAtParam pline vtx))
        ; 将每个顶点的坐标写入文件,格式为CSV
        (write-line (strcat (rtos (car pt) 2 2) ", " (rtos (cadr pt) 2 2)) f)
        ; 移至下一个顶点
        (setq vtx (+ vtx 1))
      )
      ; 关闭文件
      (close f)
      (princ (strcat "\n顶点坐标已成功保存至" csvpath "。"))
    )
    (princ "\n操作取消或未选择多项段。")
  )
  ; 清理并结束函数
  (princ)
)

; 启动消息
(princ "\n运行命令 'GetPolylinePointsCSV' 来获取多项段的点坐标并保存到CSV文件。")
(princ)

  1. 编辑器中操作;
    在编辑其中新建文件,将上述代码复制进去保存,点击下方图片上对应的按钮,然后回到cad界面,根据其命令行运行对应的指令,接着选择多线段即可。
    在这里插入图片描述
  2. 可能要注意的事项;
    如果不知道Lisp编辑器具体怎么使用,可以去B站上面查,几分钟就能学会。
  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值