周四晚上我一直在尝试修改代码,但几乎没有成功。可能完全错了。。。。。。。。请帮忙!
v1 2 3 4 5 6 7和24(v7,v24=dcl popup_list)非常适合将它们设置为自定义道具。但popup_list V27没有。不知何故,popup_list v24中的一个值被放置在这里作为自定义值。在dcl中为popup_list v29选择的值根本没有设置。
第二次打开对话框时,需要抓取(获取)以前的条目。但只有v1在对话框中设置,但在v2 v4 v5 v6中也设置。
v7(“STA”)不执行任何操作,与v24 v27和v29相同
我仍然需要添加到v43。这些都是编辑框。有没有一种简单的方法可以让代码为上面的v工作(获取和设置值),并且易于修改,这样我就可以添加所有其他值。
键=v
PRO NU=v1,标准杆数NU=v2,CLI=v3,CON=v4,PRO MA=v5,DRA=v6,STA=v7,PRO DEL=v24,FSC\U T=v27,CAL\U CON=v29
如果需要dcl和dwg(在自定义道具选项卡中输入键),请告诉我。
- ;; ORGINAL BY Tharwat 01.09.2015;;
- ;; see below for variables/values that i still need to enter in code.
- ;; v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23
- ;; v25 v26 v28 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43
- ;; these v's are all editboxes
- (defun c:dprop (/ id STA PRO_DEL FSC_T CAL_CON in l st v1 v2 v3 v4 v5 v6 v7 v24 v27 v29 )
- (if (and (< 0 (setq id (load_dialog "dprop2.dcl")))
- (new_dialog "dprop2" id)
- )
- (progn
- (setq in (vla-get-summaryinfo
- (vla-get-activedocument (vlax-get-acad-object))
- )
- STA (list "A" "A1" "A2" "A3" "A4");;v7
- PRO_DEL (list "B" "B1" "B2" "B3" "B4");;v24
- FSC_T (list "C" "C1" "C2 C3" "C4");;v27
- CAL_CON (list "D" "D1" "D2" "D3");;v29
- )
- (mapcar '(lambda (k)
- (vla-getcustombykey in k 'st)
- (setq l (append l (list st)))
- )
- '("PRO_NU" "PAR_NU" "CLI" "CON" "PRO_MA" "DRA" "STA" "PRO_DEL" "FSC_T" "CAL_CON")
- )
- (set_tile "PRO_NU" (car l)) ;;v1
- (set_tile "PAR_NU" (car l)) ;;v2
- (set_tile "CLI" (car l)) ;;v3
- (set_tile "CON" (car l)) ;;v4
- (set_tile "PRO_MA" (car l)) ;;v5
- (set_tile "DRA" (car l)) ;;v6
-
- (start_list "STA") ;;v7
- (mapcar 'add_list STA)
- (end_list)
- (set_tile "STA"
- (if (member (cadr l) STA)
- (itoa (vl-position (cadr l) STA))
- "0"))
-
- (start_list "PRO_DEL") ;;v24
- (mapcar 'add_list PRO_DEL)
- (end_list)
- (set_tile "PRO_DEL"
- (if (member (cadr l) PRO_DEL)
- (itoa (vl-position (cadr l) PRO_DEL))
- "0"))
-
- (start_list "FSC_T") ;;v27
- (mapcar 'add_list FSC_T)
- (end_list)
- (set_tile "FSC_T"
- (if (member (cadr l) FSC_T)
- (itoa (vl-position (cadr l) FSC_T))
- "0"))
-
- (start_list "CAL_CON") ;;v29
- (mapcar 'add_list CAL_CON)
- (end_list)
- (set_tile "CAL_CON"
- (if (member (cadr l) CAL_CON)
- (itoa (vl-position (cadr l) CAL_CON))
- "0"))
- (action_tile
- "accept"
- "(if (/= (setq v1 (get_tile "PRO_NU")) "") (vla-setcustombykey in "PRO_NU" v1))
- (if (/= (setq v2 (get_tile "PAR_NU")) "") (vla-setcustombykey in "PAR_NU" v2))
- (if (/= (setq v3 (get_tile "CLI")) "") (vla-setcustombykey in "CLI" v3))
- (if (/= (setq v4 (get_tile "CON")) "") (vla-setcustombykey in "CON" v4))
- (if (/= (setq v5 (get_tile "PRO_MA")) "") (vla-setcustombykey in "PRO_MA" v5))
- (if (/= (setq v6 (get_tile "DRA")) "") (vla-setcustombykey in "DRA" v6))
- (if (setq v7 (get_tile "STA")) (vla-setcustombykey in "STA" (nth (atoi v7) STA)))
- (if (setq v24 (get_tile "PRO_DEL")) (vla-setcustombykey in "PRO_DEL" (nth (atoi v24) PRO_DEL)))
- (if (setq v27 (get_tile "FSC_T")) (vla-setcustombykey in "FSC_T" (nth (atoi v27) PRO_DEL)))
- (if (setq v29 (get_tile "CON_CAL")) (vla-setcustombykey in "CAL_CON" (nth (atoi v29) CAL_CON)))
- (done_dialog)"
- )
- (action_tile "cancel" "(done_dialog)")
- (start_dialog)
- (unload_dialog id)
- )
- (if (< 0 id)
- (unload_dialog id)
- )
- )
- (princ)
- )(vl-load-com)
|