梦想家-DING 发表于 2022-9-30 20:25:33

修改了一个DCL也合成lsp了,有些问题

源码来自明经;
根据论坛修改了一个DCL也合成lsp了,但是按钮各方面无效,要怎样才能加入lsp点击按钮或输入命令执行呢,有没有前辈能整个例子学习一下


liuhe 发表于 2022-9-30 21:30:47

先学会 hello world不好么:handshake

xj6019 发表于 2022-9-30 21:45:45

链接:https://pan.baidu.com/s/1hG6JinB70NIp2E30LxqzJQ?pwd=9b65
提取码:9b65

飞雪神光 发表于 2022-10-1 00:48:24

(defun c:tt(/ dcl_xssl_dia getpt makexssldcl xy)
        (defun makexssldcl(/ lst_str str file f)
                (setq lst_str '(
                                                                               "xssl:dialog {"
                                                                               "    label = \"面板消失示例\" ;"
                                                                               "    :column {"
                                                                               "      :row {"
                                                                               "            :button {"
                                                                               "                key = \"b1\" ;"
                                                                               "                label = \"拾取坐标\" ;"
                                                                               "            }"
                                                                               "            :edit_box {"
                                                                               "                alignment = top ;"
                                                                               "                edit_width = 20 ;"
                                                                               "                is_enabled=false;"
                                                                               "                key = \"e1\" ;"
                                                                               "            }"
                                                                               "      }"
                                                                               "    }"
                                                                               "    :button {"
                                                                               "      is_cancel = true ;"
                                                                               "      key = \"cancel\" ;"
                                                                               "      label = \"确定\" ;"
                                                                               "    }"
                                                                               "}"
                                                                       )
                )
                (setq file (vl-filename-mktemp "DclTemp.dcl"))
                (setq f (open file "w"))
                (foreach str lst_str
                        (princ "\n" f)
                        (princ str f)
                )       
                (close f)
                file
        )
        (defun cs(a b c d e f /)
                        (print (list a b c d e f ))
                )
               
        (defun getpt( /)
                (setq
                        pt(getpoint "\n指定点:")
                        x(rtos (car pt)2 3)
                        y(rtos (cadr pt)2 3)
                        xy(strcat x","y)
                )
                (command "circle" pt 50)
                (setq ssa(ssadd (entlast) ssa))
                (set_tile "e1" xy)
                (dcl_xssl_dia)
        )
        (setq ssa(ssadd))
        (defun dcl_xssl_dia()
                (setq xssl_dia(makexssldcl))
                (setq dcl_id(load_dialog xssl_dia))
                (new_dialog "xssl" dcl_id"" (cond (jypt) ( '(-1 -1) )))
                (or xy (setq xy ""))
                (set_tile "e1" xy)
                (action_tile "cancel""(setq jypt(done_dialog -1))")
                (action_tile "b1""(cs $key $VALUE $DATA $REASON $X $Y)(setq jypt(done_dialog 1))")
                (setq id(start_dialog))
                (unload_dialog dcl_id)
                (vl-file-delete xssl_dia)
                (cond
                        ((= id 1)
                                (getpt)
                        )
                        ((= id -1)
                                (vl-cmdf "erase" ssa "")
                                (princ"\n退出程序!")
                        )
                )
        )
        (dcl_xssl_dia)
        (princ)
)

萧●﹏●明 发表于 2022-10-1 09:03:30

楼上说的对先学会 hello world ,不然修改现成的没什么意义

hhh454 发表于 2022-10-1 10:48:57

你这个只是把dcl,改成lsp,并没有关联的部分,就是点击控件,执行对应lsp,也就是一个萝卜一个坑

bonny 发表于 2022-10-3 09:37:50

我会(print "\nHello Girls!")
页: [1]
查看完整版本: 修改了一个DCL也合成lsp了,有些问题