[求助]lsp和dcl文件的问题
本帖最后由 作者 于 2008-10-22 9:02:29 编辑 <br /><br /> <p>我编了lsp和dcl文件,能加载,但运行时出问题。提示“找不到对话框 ALmaoyi 的定义”,</p><p>请朋友们把我看看问题出在哪里?我把这两个文件放在 D:\Program Files\AutoCAD 2006\Support</p><p> </p><p></p><p> </p><p> </p> <p><font face="Courier New" color="#ff00ff">对话框标题不对啊!!</font></p><p><font face="Courier New" color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/new_dialog.htm" target="_black"><font face="Courier New" color="#0000ff">new_dialog</font></a><font face="Courier New"><font color="#ff00ff">"ALmaoyi"</font> dcl_id<font color="#ff0000">)</font></font></p><p><font face="Courier New" color="#ff0000">中的</font></p><p><font face="Courier New" color="#ff00ff"> "ALmaoyi" </font><font face="Courier New" color="#ff00ff">在 DCL 中没有</font></p><p><font face="Courier New">把 gongyi 改成 <font color="#ff00ff">ALmaoyi</font></font></p> 谢谢!新手给大家搞笑话了。 <p>哦,这样真的行吗。。。。</p><p>我明天去试下。。。。</p> 本帖最后由 song宋_74729 于 2022-6-6 23:24 编辑
;<<<<<<合并DCL和lsp文件>>>>>>
(setq dcl_file (open (setq tmp-dcl-file-name (vl-filename-mktemp nil nil".DCL")) "w"))
(progn
(foreach x
'(
"ALmaoyi:dialog{ "
"label=\"艾蕾\";"
":boxed_row{"
"label=\"输入密度\"; "
":edit_box{"
"label=\"针(cm)\"; "
"key=\"zm\";"
"fixed_width=true; "
"edit_width=8; "
"alignment=centered; "
"} "
":edit_box{"
"label=\" 行(cm)\";"
"key=\"hm\";"
"fixed_width=true;"
"edit_width=8;"
"alignment=centered;"
"}"
"}"
":text{ "
"label=\"针或行的距离\";"
"alignment=centered;"
"}"
":boxed_row{"
"label=\"输入已知值\";"
":edit_box{"
"label=\"行数\";"
"key=\"hs\";"
""
"edit_width=4;"
"}"
":edit_box{"
"label=\" 针数\";"
"key=\"zs\";"
"edit_width=4;"
"}"
":edit_box{"
"label=\" 次数\";"
"key=\"cs\";"
"edit_width=4;"
"}"
"}"
":toggle{"
"label=\"删除源线段\";"
"value=0;"
"}"
":boxed_row{"
":button{"
"label=\"计算\";"
"key=\"jisuan\";"
"fixed_width=true;"
"width=5;"
"}"
"ok_cancel; "
"}"
"}"
) (write-line x dcl_file) )
(setq dcl_file (close dcl_file)))
(defun c:gy (/ dcl_id)
(setq ent (entsel "\n选取线段"))
(setq entlst (entget (car ent)))
(setq pt1 (cdr (assoc 10 entlst)))
(setq pt2 (cdr (assoc 11 entlst)))
(setq dcl_id (load_dialog tmp-dcl-file-name))
(if(not(new_dialog "ALmaoyi" dcl_id))(exit))
(action_tile "jisuan" "(zichengxu)") ;单击「开始」调用子程序
(start_dialog)
(unload_dialog dcl_id)
(princ)
)
(defun zichengxu() ;菜单子程序
(setq zmz (atof (get_tile "zm")))
(setq hmz (atof (get_tile "hm")))
;(setq hsz (atof (get_tile "hs")))
;(setq zsz (atof (get_tile "zs")))
;(setq csz (atof (get_tile "cs")))
(if (= (get_tile "zs") "")
(setq csz 1.0)
(setq csz (atof (rtos (/ (- (car pt2) (car pt1)) (abs (atof (get_tile "zs"))) (* zmz 0.1)) 2 0)))
)
(if (= (get_tile "zs") "")
(setq zsz (atof (rtos (/ (- (car pt2) (car pt1)) csz (* zmz 0.1)) 2 0)))
(setq zsz (atof (get_tile "zs")))
)
(setq hsz (atof (rtos (/ (- (cadr pt2) (cadr pt1)) csz (* hmz 0.1)) 2 0)))
(set_tile "hs" (rtos hsz 2 0))
(set_tile "zs" (rtos zsz 2 0))
(set_tile "cs" (rtos csz 2 0))
)
DCL与LSP整合版
页:
[1]