背景
【2024.3.25】 我自己规划3D打印的路径时,使用AutoCAD进行具体的路径规划,但是苦于其多线段的坐标难以直接导出,摸索多日未得善终。
而后在ChatGPT4的建议下使用AutoCAD自带的代码语言AutoLisp,及其编辑器 Visual Lisp,实现选取多线段自动导出其所有坐标点为csv文件的功能。
具体代码由ChatGPT4生成,这里放在最后。
【2025.3.30】鉴于有学弟要重复我的工作,于是将这篇博文详实一些。
具体操作方式
这个操作方式可以实现 点几下就能将Autocad里的多线段直接变成可以运行的Gcode文件。
- 将[线段]转成[多线段]然后合并,或者将多个[多线段]合并在一起
参考文章: AutoCAD多条线合并为一个整体即一条多段线方法
实际上就是使用在【命令行】输入”PE“,然后根据它的按钮指引就能完成线段合并。 - 使用的语言和编辑器 :AutoLisp和Visual LISP 编辑器

autolisp代码片段
; 定义一个新的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

本文介绍了如何使用AutoCAD的AutoLisp和VisualLISP编辑器,编写一个LISP函数,自动从多线段提取坐标并保存为CSV文件,以简化3D打印路径规划过程。
最低0.47元/天 解锁文章
1317

被折叠的 条评论
为什么被折叠?



