📄 btl_edit.lsp
字号:
;****************************************;
;* This is btl_edit.lsp program *;
;* Completely compiled on 02/26/99 *;
;* Last Change time 02/26/99 *;
;* ZX Mold Ltd XY.Liao *;
;****************************************;
;********************************* Main function start **********************************;
(defun btl_edit(/ mat_n sc_n unit_n ver_n dcl_id os_old old_error
nam num unt filn vers shf shr sh
dat sca ent_name ent_nam ent_sca ent_filn
ent_unt ent_num ent_shf ent_sh ent_ver ent_mat ent_dat ent_shr
btl_num btl_sel)
;------------------------------------------------------
(setvar "cmdecho" 0)
(command "undo" "m")
(command "undo" "be")
;------------------------------------------------------
(setq os_old (getvar "osmode"))
(ini_useri2)
(if (not (tblsearch "layer" "mxb"))
(command "_.layer" "_new" "mxb" "_color" "red" "mxb" "_ltype" "continuous" "mxb" "")
(command "_.layer" "thaw" "mxb" "on" "mxb" "unlock" "mxb" "")
)
(setvar "clayer" "mxb")
(ini_useri2)
;-------------------------------------------------------
(if (not (ssget "x" '((0 . "INSERT") (2 . "BTL_BTL"))))
(*error* "未发现标题栏!")
)
(setq all_btl (ssget "x" '((0 . "INSERT") (2 . "BTL_BTL"))))
(if (= 1 (sslength all_btl))
(setq ent_name (ssname (ssget "x" '((0 . "INSERT") (2 . "BTL_BTL"))) 0))
(setq ent_name (if (setq ent_name (entsel)) (car ent_name) nil))
)
(if (not ent_name)
(exit)
)
(setq ent_old (cdr (assoc 5 (entget ent_name))))
(setq ent_nam (entnext ent_name)
ent_sca (entnext ent_nam)
ent_filn (entnext ent_sca)
ent_unt (entnext ent_filn)
ent_num (entnext ent_unt)
ent_sh (entnext ent_num)
ent_shf (entnext ent_sh)
ent_ver (entnext ent_shf)
ent_mat (entnext ent_ver)
ent_dat (entnext ent_mat)
ent_shr (entnext ent_dat)
ent_fileno (entnext ent_shr)
ent_machine (entnext ent_fileno)
)
(setq nam (cdr (assoc 1 (entget ent_nam)))
sca (cdr (assoc 1 (entget ent_sca)))
filn (cdr (assoc 1 (entget ent_filn)))
unt (cdr (assoc 1 (entget ent_unt)))
num_old (cdr (assoc 1 (entget ent_num)))
shf (cdr (assoc 1 (entget ent_shf)))
sh (cdr (assoc 1 (entget ent_sh)))
vers (cdr (assoc 1 (entget ent_ver)))
mat (cdr (assoc 1 (entget ent_mat)))
dat (cdr (assoc 1 (entget ent_dat)))
shr (cdr (assoc 1 (entget ent_shr)))
fileno (cdr (assoc 1 (entget ent_fileno)))
machine (cdr (assoc 1 (entget ent_machine)))
)
(setq mat_n (xh_get mat (lib_b 1)))
(setq sc_n (xh_get sca (lib_b 3)))
(setq unit_n (xh_get unt (lib_b 4)))
(setq ver_n (xh_get vers (lib_b 5)))
(setq dcl_id (load_dialog "DwgHead"))
(load "ini_btl")
(ini_btl)
(if (not (new_dialog "btledit" dcl_id))
(exit)
)
(setq if_on 1)
(while (= 1 if_on)
(ini_dia_b)
(action_tile "B_MAT_VAL" "(click_mat)")
(action_tile "B_UNIT" "(click_share)")
(action_tile "B_SC" "(click_share)")
(action_tile "B_VER" "(click_share)")
(action_tile "IF_AUTO" "(get_f_d shf sh))")
(action_tile "accept" "(get_all_b) (done_dialog 2)")
(action_tile "cancel" "(done_dialog 3)")
(setq what_next (start_dialog))
(cond
((= 2 what_next)
(princ "\nPlease wait a moment...")
(inspt_get)
(setq if_on 0)
)
((= 3 what_next)
(command "undo" "e")
(command "undo" "b")
(setq if_on 0)
)
)
)
(setvar "osmode" os_old)
(princ "Done.")
(prin1)
)
(defun lib_b(item_n)
(cond
((= 1 item_n)
'(" " "ZINC" "PVC90%%D" "PVC85%%d" "PVC75%%D" "PVC65%%D" "PC" "POM" "GPPS" "K料"
"PP" "ABS" "HIPS" "PS" "PA" "SAN" "PE" "HDPE")
)
((= 2 item_n)
'(" " "0.004" "0.004" "0.004" "0.015" "0.020" "0.006" "0.020" "0.005" "0.005"
"0.020" "0.006" "0.004" "0.005" "0.015" "0.004" "0.020" "0.025")
)
((= 3 item_n)
'("4:1" "3:1" "2:1" "1.5:1" "1:1" "1:1.5" "1:2" "1:3" "1:4" " ")
)
((= 4 item_n)
'("MM" "INCH" "MM&INCH" "")
)
((= 5 item_n)
'("A" "B" "C" "D" "E" "F" "G" "H")
)
)
)
(defun ini_list(list_name table_name)
(start_list list_name)
(mapcar 'add_list table_name)
(end_list)
)
(defun ini_dia_b()
(ini_list "B_MAT_VAL" (lib_b 1))
(if mat_n
(progn
(set_tile "B_MAT" (nth mat_n (lib_b 1)))
(set_tile "B_SHR" (nth mat_n (lib_b 2)))
)
(progn
(set_tile "B_MAT" mat)
(set_tile "B_SHR" shr)
)
)
(ini_list "B_SC" (lib_b 3))
(set_tile "B_SC" (itoa sc_n))
(ini_list "B_UNIT" (lib_b 4))
(set_tile "B_UNIT" (itoa unit_n))
(ini_list "B_VER" (lib_b 5))
(set_tile "B_VER" (itoa ver_n))
(set_tile "B_DATE" dat)
(set_tile "B_FILE" filn)
(set_tile "B_FILENO" fileno)
(set_tile "B_MACHINE" machine)
(set_tile "B_SHF" shf)
(set_tile "B_SH" sh)
(set_tile "B_NAME" nam)
(set_tile "B_NUM" num_old)
)
(defun get_f_d(x y)
(setq date_val (itoa (fix (getvar "cdate"))))
(set_tile "B_DATE" (strcat (substr date_val 1 4)
"-" (substr date_val 5 2)
"-" (substr date_val 7 2)))
(set_tile "B_FILE" (strcat (lxy_trim (getvar "loginname")) "\\"
(getvar "dwgprefix")
(getvar "dwgname")))
(setq name_len (strlen (getvar "dwgname")))
(set_tile "B_FILENO" (strcat "EDA-DMD-" (substr (getvar "dwgname") 1 (- name_len 4))
"-" x "/" y "-" "A0-" "1")
)
(set_tile "B_NUM" (substr (getvar "dwgname") 1 (- name_len 4)))
(set_tile "B_SHF" shf)
)
(defun get_all_b()
(if mat_n
(setq mat (get_tile "B_MAT")
shr (nth mat_n (lib_b 2))
)
(setq mat (get_tile "B_MAT")
shr (get_tile "B_SHR")
)
)
(setq sca (nth sc_n (lib_b 3)))
(setq unt (nth unit_n (lib_b 4)))
(setq vers (nth ver_n (lib_b 5)))
(setq dat (get_tile "B_DATE"))
(setq filn (get_tile "B_FILE"))
(setq fileno (get_tile "B_FILENO"))
(setq machine (get_tile "B_MACHINE"))
(setq shf (get_tile "B_SHF"))
(setq sh (get_tile "B_SH"))
(setq nam (get_tile "B_NAME"))
(setq num (get_tile "B_NUM"))
(setq shr (get_tile "B_SHR"))
)
(defun inspt_get( / a ent ent_shr ent_dat ent_mat
ent_sca ent_filn ent_uni ent_num ent_shf
ent_sh ent_shf )
;(setq a 0)
;(foreach n btl_num
; (if (= num_old n)
; (setq a (+ a 1))
; )
;)
;(if (= 1 a)
; (setq shf "1"
; sh "1"
; )
;)
;(foreach n btl_sel
; (if (= num_old (nth (xh_get n btl_sel) btl_num))
; (progn
(setq ent_sca (entnext ent_nam)
ent_filn (entnext ent_sca)
ent_uni (entnext ent_filn)
ent_num (entnext ent_uni)
ent_sh (entnext ent_num)
ent_shf (entnext ent_sh)
ent_vers (entnext ent_shf)
ent_mat (entnext ent_vers)
ent_dat (entnext ent_mat)
ent_shr (entnext ent_dat)
ent_fileno (entnext ent_shr)
ent_machine (entNext ent_fileno)
)
(mod_ent ent_nam nam)
(mod_ent ent_sca sca)
(mod_ent ent_filn filn)
(mod_ent ent_uni unt)
(mod_ent ent_num num)
(mod_ent ent_vers vers)
(mod_ent ent_mat mat)
(mod_ent ent_dat dat)
(mod_ent ent_shr shr)
(mod_ent ent_shf shf)
(mod_ent ent_sh sh)
(mod_ent ent_fileno fileno)
(mod_ent ent_machine machine)
)
(defun click_mat()
(setq mat_n (atoi (get_tile "B_MAT_VAL")))
(set_tile "B_MAT" (nth mat_n (lib_b 1)))
(set_tile "B_SHR" (nth mat_n (lib_b 2)))
)
(defun click_share()
(setq sc_n (atoi (get_tile "B_SC")))
(setq unit_n (atoi (get_tile "B_UNIT")))
(setq ver_n (atoi (get_tile "B_VER")))
)
;---Get the number which indicate the position of "item" in "list"---;
;---Format: (xh_get item list)---;
;------------------------------------------------------------------------------------;
(defun xh_get(i_member list_tab / n)
(setq counti nil)
(setq n 0)
(while (< n (length list_tab))
(if (= i_member (nth n list_tab))
(setq counti n)
)
(setq n (+ n 1))
)
(setq counti counti)
)
;------------------------------------------------------------------------------------;
;------------------------------------------------------------------------------------;
(defun mod_ent(ent_name mod_data / ent_data)
(setq ent_data (entget ent_name))
(setq ent_data (subst (cons 1 mod_data)
(assoc 1 ent_data)
ent_data)
)
(entmod ent_data)
(entupd ent_name)
)
;------------------------------------------------------------------------------------;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -