(command "fillet" "r" r3)(command "fillet" line5 line1)(defun bulb() (setvar "cmdecho" 0) (dcl_show) (setvar "cmdecho" 1))(defun *error* (msg);不可修改(即*error*和msg都是LISP预留值,使用时不可修改) (close f1) (print "OK") )<span class="ne-text">(new_dialog "box" (load_dialog "E:/ACAD_WORK/t412.dcl"))</span><span class="ne-text">(new_dialog "box" (load_dialog "E:/ACAD_WORK/t412.dcl"))</span>bulb:dialog{ label="球扁钢"; :row { :image { key = "ima"; width = 20; aspect_ratio = 0.618; } :boxed_column { label = "参数"; :edit_box {label = "h"; key = "h";} :edit_box {label = "tw"; key = "tw";} :edit_box {label = "bf"; key = "bf";} :edit_box {label = "r1"; key = "r1";} :edit_box {label = "r2"; key = "r2";} :edit_box {label = "r3"; key = "r3";} :edit_box {label = "r4"; key = "r4";} } } :concatenation { :text_part {label = "说明";} :text_part {label = " ";} } :concatenation { :text_part {label = "请完整输入各个参数后按命令提示选择一个球扁钢左下角点";} } ok_cancel;} (defun dcl_show() (setq dcl_id (load_dialog "E:/ACAD_WORK/LISP_WORK/BULB/bulb.dcl"));加载DCL文件,要使用完整路径,相对路径找不到 (new_dialog "bulb" dcl_id);使用DCL文件生成一个对话框对象 (show_image "ima" "E:/ACAD_WORK/LISP_WORK/BULB/bulb_test.sld");进行对话框的初始化以及事件注册(action_tile函数)工作 (action_tile "accept" "(ok_dia) (done_dialog 1)") (setq dd (start_dialog));开始对话框消息循环并捕获消息(一般是点击OK,此时start_dialog函数返回1) (if (= dd 1) (draw_bulb));根据捕获的消息进行事件处理 )(defun ok_dia() (setq h (atof (get_tile "h")));get_tile函数用于取控件的value属性,对于edit_box就是其中填写的值 (setq tw (atof (get_tile "tw"))))(defun show_image(key sld) (setq x (dimx_tile key));取image控件框的尺寸 (setq y (dimy_tile key)) (start_image key);开始处理image控件 (fill_image 0 0 x y 3);填充背景 (slide_image 0 0 x y sld);填充图片 (end_image))***MENUGROUP=MYLISP ;菜单组名称,在界面上无显示,上述的等号右边可任意修改;***POP1 ;***POP1的意思为第一组弹出菜单,POP后的数字可以是1-9[LISP] ;菜单条中一下拉菜单名称,方括号内可任意修改[BULB] ^C^P (load "E:/ACAD_WORK/LISP_WORK/BULB/bulb.LSP") (bulb) ;LISP菜单中的一个菜单项名称,其后为ACAD宏命令,^C意为取消当前操作,^P意为执行后续函数,后续的为LISP函数,用于加载指定的LSP文件并执行其中的函数;;最后必须有一个空行

(defun list_all() (setq ent_cnt (sslength (ssget "X")));统计模型中图元的数量,(ssget "X")是选中所有图元 (setq ent_next (entnext));获取第一个图元数量,无参的(entnext)是获取第一个图元 (print (cdr (assoc 0 (entget ent_next))));提取第一个图元的类型,注意这种表应使用cdr得到第二个元素,不可使用cadr,另有参(entnext)是得到参数图元的下一下图元 (repeat (- ent_cnt 1);重复获取下一下图元,重复次数为总图元数-1 (progn (setq ent_next (entnext ent_next)) (print (cdr (assoc 0 (entget ent_next)))) ) ))21058.0642100161,7554.2751395017244.999975272068520478.5900868589,7002.37866909203(defun read_one() (setq file1 (open "E:/VS_WORK/DecBdf/TEST/cad1.txt" "r")) (setq line (read-line file1));读第一行,第一角点 (command "rectangle" line);指定矩形第一角点 (setq line (read-line file1));读第二行,旋转角度 (command "r" line);设置旋转角度 (setq line (read-line file1));读第三行,另一角点 (command line);设置第另一角点 (close file1))读取时应注意:
rectangle 21058.0642100161,7554.27513950172 r 44.9999752720685 20478.5900868589,7002.37866909203如果换成以下这样也不行
"rectangle" "21058.0642100161,7554.27513950172" "r" "44.9999752720685" "20478.5900868589,7002.37866909203"