⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 btl_edit.lsp

📁 plc设计编程软件
💻 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 + -