[已完成]圖塊插入程式
本帖最后由 作者 于 2009-7-5 18:52:38 编辑 <br /><br /> <p>辦公室用的是ZWCAD2008i,所以程序只能自己開發</p><p>下面是我的頂針插入程序,(我的頂針包含兩個att屬性,即直徑和代號)</p><p>(這是剛寫的程序,沒來得及把變量改成局部變量)</p><p>問題:</p><p>在變量輸入後判斷直徑變量類型,如果不是數字則彈出警告,(while (= cepwl 0)似乎起不到作用</p><p>我最終的想法是在彈出警告窗口後把控制權再交還給dcl對話框,如何調回?</p><p>勞煩各位幫我解決一下,</p><p>(DEFUN C:CEPADD()<br/>(setvar "cmdecho" 1)<br/>(setq cepwl 0 )<br/>(SETQ DCL_ID (LOAD_DIALOG "i:/cepadd.DCL")) <br/>(while (= cepwl 0)<br/>(NEW_DIALOG "CEPADD" DCL_ID) <br/> (SET_TILE "zhijin" "1.0") <br/> (SET_TILE "daihao" "A") <br/> (ACTION_TILE "cancel" "(exit)") <br/> (ACTION_TILE "accept" "(C:getdata)")<br/> (START_DIALOG)<br/>);end while<br/>(setq blkpt (getpoint "\n頂針位置插入點:"))<br/>(setq zj (strcat "%%C" (rtos zhijin 2 1)))<br/>(while<br/>(if (not (tblsearch "block" "EP"))<br/> (COMMAND "insert" "C:/Program Files/ZWCAD 2008i Cht/hawnnn/Block/ep" "S" zhijin "R" "0" blkpt zj daihao)<br/> (COMMAND "insert" "ep" "S" zhijin "R" "0" blkpt zj daihao)<br/>)<br/>);endwhile<br/>(princ)<br/>)</p><p><br/>(defun C:getdata()<br/>(SETQ cepvar (read (get_tile "zhijin"))<br/>zhijin (ABS (ATOF (GET_TILE "zhijin")))<br/>daihao (GET_TILE "daihao"))<br/>(if (= zhijin 0)<br/> (alert "直徑只能為數字")<br/> (progn<br/> (UNLOAD_DIALOG DCL_ID) <br/> (setq cepwl 1)<br/> )<br/>);endif<br/>)</p><p> </p><p>CEPADD:dialog<br/>{ label="頂針插入程式V1.0";<br/>:edit_box<br/>{label="頂針直徑:";<br/>key="zhijin";<br/>edit_limit=20;<br/>edit_width=10;<br/>fixed_width=true;<br/>}<br/>:edit_box<br/>{label="頂針代號:";<br/>key="daihao";<br/>edit_limit=10;<br/>edit_width=10;<br/>fixed_width=true;<br/>}<br/>ok_cancel;<br/>}</p> 我公司,也是用中望2011CAD的,使用中望CAD开发的外挂,个人感觉比不上 燕秀工具箱 (COMMAND "insert" "C:/Program Files/ZWCAD 2008i Cht/hawnnn/Block/ep" "S" zhijin "R" "0" blkpt zj daihao)能提供文件给我研究下吗?(DEFUN C:CEPADD()
(setvar "cmdecho" 1)
(setq cepwl 0)
(if (> (SETQ DCL_ID (LOAD_DIALOG "i:/cepadd.DCL")) 0) (progn
(while (= cepwl 0)
(if (NEW_DIALOG "CEPADD" DCL_ID) (progn
(SET_TILE "zhijin" "1.0")
(SET_TILE "daihao" "A")
(action_tile "zhijin" "(donum)")
(ACTION_TILE "cancel" "(done_dialog 0)")
(ACTION_TILE "accept" "(C:getdata)(done_dialog 1)")
(setq re (START_DIALOG))
)
(princ "\n无法显示对话框!")
)
);end while
(unload_dialog dcl_id)
)
(princ "\n无法加载对话框!")
)
(if (= re 1) (progn
(setq blkpt (getpoint "\n頂針位置插入點:"))
(setq zj (strcat "%%C" (rtos zhijin 2 1)))
(while
(if (not (tblsearch "block" "EP"))
(COMMAND "insert" "C:/Program Files/ZWCAD 2008i Cht/hawnnn/Block/ep" "S" zhijin "R" "0" blkpt zj daihao)
(COMMAND "insert" "ep" "S" zhijin "R" "0" blkpt zj daihao)
)
);endwhile
))
(princ)
)
(defun C:getdata()
(SETQ zhijin (ABS (ATOF (GET_TILE "zhijin")))
daihao (GET_TILE "daihao"))
)
(defun donum ()
(setq zhijin (read(get_tile "zhijin")))
(if (not(numberp zhijin)) (progn
(set_tile "zhijin" "0")
(alert "输错数据,请重新输入。")
))
)
ZZXXQQ 发表于 2012-6-2 22:22 static/image/common/back.gif
谢谢,虽然还需要一些支持的文件,不知道自己能不能做。
页:
[1]