depgfdepgf 发表于 2022-8-5 21:30:37

幻灯片命令如何调用下面TT1、TT2、TT3

各位大佬,小弟不才,请问幻灯片命令如何调用下面TT1、TT2、TT3的命令,谢谢!


[*](defun c:tt (/ updateImage getdata1 view dcl_id status)
[*]    (setq path "D:\\temp_chs\\temp\\")
[*]    (defun updateImage (key / sld x y)
[*]    (setq sld (cond ((= key "front")(strcat path "sld\\" "Face"))
[*]                  ((= key "top"    )(strcat path "sld\\" "Dessus"))
[*]                  ((= key "section")(strcat path "sld\\" "Coupe" ))
[*]            )
[*]          x   (dimx_tile "img")
[*]          y   (dimy_tile "img")
[*]    )
[*]   (start_image "img")
[*]   (fill_image 0 0 x y 0)
[*]   (slide_image 0 -15 x y sld)
[*]   (end_image)
[*] )
[*]
[*](if JH (/= 'str (type JH)) (setq JH "500"))
[*](if JW (/= 'str (type JW)) (setq JW "500"))
[*](if JR (/= 'str (type JR)) (setq JR "50"))
[*](defun getdata1 ()
[*]    (setq JH(get_tile "JH"))
[*]    (setq JW(get_tile "JW"))
[*]    (setq JR(get_tile "JR"))
[*]    )
[*](if (= (setq dcl_id (load_dialog (make-dclCS6 ))) 0)(progn(alert "\n无法显示对话框!")(exit)))
[*](if(not (new_dialog "dllC" dcl_id))(progn(alert "\n无法显示对话框!")(exit)))
[*](set_tile "JH" JH)
[*](set_tile "JW" JW)
[*](set_tile "JR" JR)
[*](action_tile "spacer" "(getdata1)(done_dialog 1)")
[*](action_tile "cancel" "(getdata1)(done_dialog 0)")
[*](setq view "front")
[*]   (progn
[*]      (set_tile "view" view)
[*]      (updateImage view)
[*]      (action_tile "view" "(updateImage (setq view $value))")
[*]      (setq sld (start_dialog))
[*]      (unload_dialog dcl_id)
[*]         si OK
[*]      (if (= sld 1)
[*]         view
[*]      )
[*]   (COND ((= (GET_TILE "front") "1")   (SETQ sld 1));幻灯片命令如何调用下面TT1的命令
[*]         ((= (GET_TILE "top") "1")   (SETQ sld 2));幻灯片命令如何调用下面TT2的命令
[*]         ((= (GET_TILE "section") "1") (SETQ sld 3));幻灯片命令如何调用下面TT3的命令
[*]   )
[*] (cond ((= sld 1) (tt1))
[*]       ((= sld 2) (tt2))
[*]       ((= sld 3) (tt3))
[*]   )
[*] (defuntt1 ()
[*]   (alert "\n001")
[*]   (get_jxhy_data (atoi JH)(atoi JW) (atoi JR))
[*] )
[*] (defuntt2 ()
[*]   (alert "\n002")
[*]   (get_jxhy_data (atoi JH)(atoi JW) (atoi JR))
[*] )
[*] (defuntt3 ()
[*]   (alert "\n003")
[*]   (get_jxhy_data (atoi JH)(atoi JW) (atoi JR))
[*] )
[*])
[*](prin1)
[*])
[*]
[*](defun make-dclCS6(/ lst_str str file f)
[*](setq lst_str '(
[*]      "dllC:dialog"
[*]      "{ // start dcl"
[*]      "label = \"矩形中心画圆\";"
[*]" :row{"" :boxed_radio_column {"" label = \"幻灯片选择\";"" key = \"view\";"
[*]"   :radio_button{ label = \"圆形\"; key = \"front\"; }"
[*]"   :radio_button{ label = \"方圆\"; key = \"top\"; }"
[*]"   :radio_button{ label = \"箭头\"; key = \"section\"; }"
[*]"   }"
[*]      ":column{"
[*]      ":row{:edit_box{label=\"长度:\";key=\"JW\"; edit_width=15;}}"
[*]      ":row{:edit_box{label=\"宽度:\";key=\"JH\"; edit_width=15;}}"
[*]      ":row{:edit_box{label=\"直径:\";key=\"JR\"; edit_width=15;}}"
[*]                  "}"
[*]      ":column{"
[*]"   :image{"
[*]"       key = \"img\";"
[*]"       aspect_ratio = 1.0;"
[*]"       height = 8;"
[*]"   }"
[*]"   }"
[*]" }"
[*]      ":column{"
[*]      ":row{"":button{label=\"确定(&Q)\";key=\"spacer\";is_default=true;height=2;}"
[*]             ":button{label=\"取消(&C)\";key=\"cancel\";is_cancel=true;height=2;}"
[*]             "}""}"
[*]"}"
[*]))
[*](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 get_jxhy_data (HH WWRR /P0 P1 P2 P3 P4 P5 )
[*](setvar "cmdecho"0)
[*](setvar "blipmode"0)
[*](setq p0 (getpoint "插入点"))
[*](setq p1 (polar p0 (* pi 1.5) (/ hh 2)))
[*](setq p2 (polar p10 (/ ww 2)))
[*](setq p3 (polar p2 pi ww))
[*](setq p4 (polar p3 (* pi 0.5) hh))
[*](setq p5 (polar p4 0 ww))
[*](vl-cmdf "rectang" "non"p3 "non"p5 )
[*](vl-cmdf "change" (entlast) "" "p" "c" "7" "")
[*](vl-cmdf "circle" "non"p0 "d" rr )
[*](vl-cmdf "change" (entlast) "" "p" "c" "7" "")
[*](prin1)
[*])

lee50310 发表于 2022-8-5 21:41:00

提供一個完整的範例(含幻燈片) 可參考看看

檔案存放路徑 d槽 temp 目錄下
若放在其他地方 則需修改 程式中的 路徑(setq path "D:\\TEMP\\")
執行指令:tt2

效果如動態圖

depgfdepgf 发表于 2022-8-5 21:50:29

本帖最后由 depgfdepgf 于 2022-8-5 21:56 编辑

lee50310老大,就是拿你这个改的,改到后面不会了:'(

lee50310 发表于 2022-8-5 22:44:00

本帖最后由 lee50310 于 2022-8-6 11:32 编辑

depgfdepgf 发表于 2022-8-5 21:50
lee50310老大,就是拿你这个改的,改到后面不会了
將你上面的程式及 SDL資料夾放在 c:槽 的 temp資料夾內
修改 程式路徑 (setq path "C:\\TEMP\\")

可以執行



depgfdepgf 发表于 2022-8-6 14:28:43

没有调用TT2,和TT3命令,只调用了TT1命令,@lee50310大佬

lee50310 发表于 2022-8-6 22:26:13

depgfdepgf 发表于 2022-8-6 14:28
没有调用TT2,和TT3命令,只调用了TT1命令,@lee50310大佬




改好了
路徑設 (setq path "D:\\TEMP\\")
若存放位ˋ有不同請修改程式中 路徑值



depgfdepgf 发表于 2022-8-7 08:52:02

本帖最后由 depgfdepgf 于 2022-8-7 21:58 编辑


页: [1]
查看完整版本: 幻灯片命令如何调用下面TT1、TT2、TT3