本帖最后由 作者 于 2009-7-5 18:52:38 编辑
辦公室用的是ZWCAD2008i,所以程序只能自己開發 下面是我的頂針插入程序,(我的頂針包含兩個att屬性,即直徑和代號) (這是剛寫的程序,沒來得及把變量改成局部變量) 問題: 在變量輸入後判斷直徑變量類型,如果不是數字則彈出警告,(while (= cepwl 0)似乎起不到作用 我最終的想法是在彈出警告窗口後把控制權再交還給dcl對話框,如何調回? 勞煩各位幫我解決一下, (DEFUN C:CEPADD() (setvar "cmdecho" 1) (setq cepwl 0 ) (SETQ DCL_ID (LOAD_DIALOG "i:/cepadd.DCL")) (while (= cepwl 0) (NEW_DIALOG "CEPADD" DCL_ID) (SET_TILE "zhijin" "1.0") (SET_TILE "daihao" "A") (ACTION_TILE "cancel" "(exit)") (ACTION_TILE "accept" "(C:getdata)") (START_DIALOG) );end while (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 cepvar (read (get_tile "zhijin")) zhijin (ABS (ATOF (GET_TILE "zhijin"))) daihao (GET_TILE "daihao")) (if (= zhijin 0) (alert "直徑只能為數字") (progn (UNLOAD_DIALOG DCL_ID) (setq cepwl 1) ) );endif )
CEPADD:dialog { label="頂針插入程式V1.0"; :edit_box {label="頂針直徑:"; key="zhijin"; edit_limit=20; edit_width=10; fixed_width=true; } :edit_box {label="頂針代號:"; key="daihao"; edit_limit=10; edit_width=10; fixed_width=true; } ok_cancel; } |