<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[AutoCAD LISP二次开发入门教程：从Hello World到模具设计自动化脚本]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;&lt;strong&gt;核心结论：AutoLISP是AutoCAD内置的编程语言，无需额外安装编译器。掌握LISP编程可以将重复性操作自动化（一键图层切换、批量标注、自动清理等），是模具设计师提升30%效率的必学技能。&lt;/strong&gt;&lt;/p&gt;</p>
<p dir="auto">&lt;h3&gt;什么是AutoLISP？&lt;/h3&gt;</p>
<p dir="auto">&lt;p&gt;AutoLISP是AutoCAD内置的LISP编程方言，1986年随AutoCAD 2.18引入，至今已近40年。它基于Common Lisp的轻量子集，专门用于AutoCAD二次开发。&lt;/p&gt;</p>
<p dir="auto">&lt;h4&gt;LISP的三大优势&lt;/h4&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;strong&gt;零配置&lt;/strong&gt;：记事本就能写，APPLOAD加载即运行&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;全版本兼容&lt;/strong&gt;：从R14到2026，LISP代码基本通用&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;简洁高效&lt;/strong&gt;：几十行代码完成复杂批量操作&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;h3&gt;第一个LISP程序&lt;/h3&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
(defun c:hello ( / msg )<br />
(setq msg "你好，模具设计工程师！")<br />
(alert msg)<br />
(princ)<br />
)<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;p&gt;保存为hello.lsp，APPLOAD加载，输入HELLO运行。&lt;/p&gt;</p>
<p dir="auto">&lt;h3&gt;LISP基础语法速查&lt;/h3&gt;</p>
<p dir="auto">&lt;h4&gt;变量与数据类型&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(setq name "张三")            ; 字符串<br />
(setq count 5)                ; 整数<br />
(setq pt (list 100 200 0))    ; 坐标点<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h4&gt;常用系统变量&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(getvar "clayer")             ; 获取当前图层<br />
(setvar "clayer" "轮廓线")     ; 设置当前图层<br />
(getvar "dwgname")            ; 获取DWG文件名<br />
(getvar "dimscale")           ; 标注全局比例<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h4&gt;选择集操作（核心）&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(setq ss (ssget))                        ; 用户选择对象<br />
(setq ss (ssget "X" '((0 . "LINE"))))    ; 选中所有直线<br />
(setq count (sslength ss))               ; 获取数量<br />
(setq ent (ssname ss 0))                 ; 获取第1个对象<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h3&gt;模具设计必备的5个LISP工具&lt;/h3&gt;</p>
<p dir="auto">&lt;h4&gt;1. 一键切换图层&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(defun c:L01 ( / ) (setvar "clayer" "轮廓线")(princ "\n层：轮廓线")(princ))<br />
(defun c:L02 ( / ) (setvar "clayer" "细实线")(princ "\n层：细实线")(princ))<br />
(defun c:L03 ( / ) (setvar "clayer" "中心线")(princ "\n层：中心线")(princ))<br />
(defun c:L04 ( / ) (setvar "clayer" "虚线")(princ "\n层：虚线")(princ))<br />
(defun c:L05 ( / ) (setvar "clayer" "标注层")(princ "\n层：标注层")(princ))<br />
&lt;/code&gt;&lt;/pre&gt;<br />
&lt;p&gt;按下L01/L02/L03秒切图层，比下拉菜单快5倍。&lt;/p&gt;</p>
<p dir="auto">&lt;h4&gt;2. 批量标注所有圆直径&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(defun c:BD ( / ss i ent cen rad)<br />
(setq ss (ssget '((0 . "CIRCLE"))))<br />
(if (not ss) (princ "\n未选中任何圆"))<br />
(setq i 0)<br />
(repeat (sslength ss)<br />
(setq ent (ssname ss i))<br />
(setq cen (cdr (assoc 10 (entget ent))))<br />
(setq rad (cdr (assoc 40 (entget ent))))<br />
(command "dimdiameter" ent (polar cen (/ pi 4) rad))<br />
(setq i (1+ i))<br />
)<br />
(princ (strcat "\n已完成 " (itoa i) " 个圆的直径标注"))<br />
(princ)<br />
)<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h4&gt;3. 选中对象批量移动到指定图层&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(defun c:MTL ( / ss lay i ent)<br />
(setq ss (ssget))<br />
(if (not ss) (princ "\n未选中任何对象"))<br />
(setq lay (getstring "\n输入目标图层名: "))<br />
(setq i 0)<br />
(repeat (sslength ss)<br />
(setq ent (ssname ss i))<br />
(command "chprop" ent "" "la" lay "")<br />
(setq i (1+ i))<br />
)<br />
(princ (strcat "\n已将 " (itoa i) " 个对象移动到 " lay))<br />
(princ)<br />
)<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h4&gt;4. 一键清理空图层&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(defun c:PCL ( / )<br />
(command "-purge" "la" "" "n")<br />
(command "-purge" "la" "" "n")<br />
(command "-purge" "la" "" "n")<br />
(princ "\n空图层已清理")<br />
(princ)<br />
)<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h4&gt;5. 快速画模具中心线&lt;/h4&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
(defun c:QCL ( / pt1 pt2 mp)<br />
(setq pt1 (getpoint "\n指定第一个点: "))<br />
(setq pt2 (getpoint "\n指定第二个点: "))<br />
(setq mp (mapcar (function (lambda (a b) (/ (+ a b) 2.0))) pt1 pt2))<br />
(setq oldlay (getvar "clayer"))<br />
(setvar "clayer" "中心线")<br />
(command "line" (list (- (car mp) 10) (cadr mp) 0) (list (+ (car mp) 10) (cadr mp) 0) "")<br />
(setvar "clayer" oldlay)<br />
(princ)<br />
)<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h3&gt;LISP程序的加载方式&lt;/h3&gt;</p>
<p dir="auto">&lt;table&gt;<br />
&lt;tr&gt;&lt;td&gt;方式&lt;/td&gt;&lt;td&gt;操作&lt;/td&gt;&lt;td&gt;适用场景&lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;APPLOAD加载&lt;/td&gt;&lt;td&gt;命令行输入APPLOAD，选择LSP文件&lt;/td&gt;&lt;td&gt;临时使用&lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;启动组&lt;/td&gt;&lt;td&gt;APPLOAD-&gt;启动组-&gt;添加LSP文件&lt;/td&gt;&lt;td&gt;自动加载&lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;ACAD.LSP&lt;/td&gt;&lt;td&gt;放入启动目录，AutoCAD自动加载&lt;/td&gt;&lt;td&gt;团队统一&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/table&gt;</p>
<p dir="auto">&lt;h3&gt;LISP调试技巧&lt;/h3&gt;</p>
<p dir="auto">&lt;ol&gt;<br />
&lt;li&gt;&lt;code&gt;(princ "调试信息")&lt;/code&gt; — 在命令行显示信息&lt;/li&gt;<br />
&lt;li&gt;&lt;code&gt;!变量名&lt;/code&gt; — 在命令行查看变量值&lt;/li&gt;<br />
&lt;li&gt;&lt;code&gt;VLIDE&lt;/code&gt; — 启动完整的LISP开发环境&lt;/li&gt;<br />
&lt;li&gt;在关键位置加&lt;code&gt;(getstring "\n按Enter继续...")&lt;/code&gt;暂停&lt;/li&gt;<br />
&lt;/ol&gt;</p>
<p dir="auto">&lt;h3&gt;学习资源推荐&lt;/h3&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;&lt;strong&gt;书籍&lt;/strong&gt;：吴永进《AutoCAD AutoLISP（Visual LISP）程序设计》&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;官方文档&lt;/strong&gt;：AutoCAD帮助 -&gt; AutoLISP开发者指南&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;在线教程&lt;/strong&gt;：AFRAutoLISP教程、Lee Mac的LISP博客&lt;/li&gt;<br />
&lt;li&gt;&lt;strong&gt;论坛&lt;/strong&gt;：<a href="http://Theswamp.org" rel="nofollow ugc">Theswamp.org</a> LISP论坛、明经通道&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;hr&gt;<br />
&lt;p&gt;&lt;strong&gt;相关推荐：&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="<a href="https://www.mj7.cn/t/keybase" rel="nofollow ugc">https://www.mj7.cn/t/keybase</a>"&gt;压铸模具技术规范标准文档汇总（KeyBase）&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="<a href="https://www.mj7.cn/t/topic" rel="nofollow ugc">https://www.mj7.cn/t/topic</a>"&gt;小批量试生产管理：异常问题记录与改善对策（附真实案例）&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="<a href="https://www.mj7.cn/t/topic" rel="nofollow ugc">https://www.mj7.cn/t/topic</a>"&gt;样机客户试用管理：从申请到确认的完整操作流程&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;hr&gt;<br />
&lt;p&gt;你在实际生产中遇到过类似问题吗？欢迎留言讨论。&lt;/p&gt;</p>
]]></description><link>https://forum.mj7.cn/topic/8094/autocad-lisp二次开发入门教程-从hello-world到模具设计自动化脚本</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 23:29:33 GMT</lastBuildDate><atom:link href="https://forum.mj7.cn/topic/8094.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 May 2026 14:39:47 GMT</pubDate><ttl>60</ttl></channel></rss>