aileiwu 发表于 2008-10-22 08:54:00

[求助]lsp和dcl文件的问题

本帖最后由 作者 于 2008-10-22 9:02:29 编辑 <br /><br /> <p>我编了lsp和dcl文件,能加载,但运行时出问题。提示“找不到对话框 ALmaoyi 的定义”,</p><p>请朋友们把我看看问题出在哪里?我把这两个文件放在 D:\Program Files\AutoCAD 2006\Support</p><p>&nbsp;</p><p></p><p>&nbsp;</p><p>&nbsp;</p>

caoyin 发表于 2008-10-22 10:11:00

<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">&nbsp;"ALmaoyi" </font><font face="Courier New" color="#ff00ff">在 DCL 中没有</font></p><p><font face="Courier New">把 gongyi 改成 <font color="#ff00ff">ALmaoyi</font></font></p>

aileiwu 发表于 2008-10-22 11:06:00

谢谢!新手给大家搞笑话了。

zctao1966 发表于 2008-11-4 20:57:00

<p>哦,这样真的行吗。。。。</p><p>我明天去试下。。。。</p>

song宋_74729 发表于 2022-6-6 22:32:00

本帖最后由 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]
查看完整版本: [求助]lsp和dcl文件的问题