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

📄 ep_pos_c.lsp

📁 plc设计编程软件
💻 LSP
字号:


(defun cso_tran	(/ cso)
  (command "ucs" "w")
  (setq old_cso (ssget "X" '((0 . "INSERT") (2 . "cso"))))
  (if (= nil old_cso)
    (progn
      (setq cso (getpoint "选取基准点"))

      (command "insert" "cso.dwg" cso "" "" "")
      (command "ucs" "o" cso)
      (setq x1 (car cso))
      (setq y1 (car (cdr cso)))
    )
    (if	(= 1
	   (sslength old_cso))
	   (progn
	     (princ "!!!图形中已有基准坐标系!!!")
	     (setq temp_cso (assoc '10 (entget (ssname old_cso 0))))
	     (setq x1 (car (cdr temp_cso)))
	     (setq y1 (cadr (cdr temp_cso)))
	   )
	   (princ "!!!图形中已有多基准坐标系!!!")

	
    )
  )
)








(defun p_pos (/		    inspt	  screw_set	ent_count
	      i		    ent_nam	  all_mxb_ent	
	     all_count	old_set
	      old_set_nstd  all_mxb_ent    
	     )
					;------------------------------------------
					;shut off command echo and set undo mark
					;------------------------------------------
  (setvar "cmdecho" 0)
  (command "undo" "m")
  (setq os_old (getvar "osmode"))	;------------------------------------------
					;save current system var
					;------------------------------------------
					;(setq os_old (getvar "osmode"))
  (setq la_old (getvar "clayer"))
					;------------------------------------------
					;set user system var
					;------------------------------------------
  (if (not (tblsearch "layer" "pinID"))
    (command "_.layer"	 "_new"	     "pinID"	 "_color"
	     "red"	 "pinID"     "_ltype"	 "continuous"
	     "mxb"	 ""
	    )
    (command "_.layer" "thaw" "pinID" "on" "mxb" "unlock" "mxb"	"")
  )
  (setvar "clayer" "pinID")
  (if (not (tblsearch "layer" "EJID"))
    (command "_.layer"	 "_new"	     "EJID"	 "_color"
	     "red"	 "ejID"	     "_ltype"	 "continuous"
	     "mxb"	 ""
	    )
    (command "_.layer" "thaw" "ejID" "on" "mxb"	"unlock" "mxb" "")
  )
  (setvar "clayer" "ejID")
					;(ini_useri2)

					;------------------------------------------
					;delete old bill table
					;------------------------------------------
  (if (not (tblsearch "appid" "mxb_epid"))
    (regapp "mxb_epid")
  )
  (if (not (tblsearch "appid" "epid"))
    (regapp "epid")
  )
  (setq old_set (ssget "X" '((0 . "INSERT") (2 . "ep_pos"))))
  (if old_set
    (command "erase" old_set "")
  )

  ;(setq old_set (ssget "X" '((0 . "INSERT") (8 . "ejid"))))
  ;(if old_set
    ;(command "erase" old_set "")

  ;)
  (command "purge" "b" "ac_xyq_blk*" "n")

					;------------------------------------------
					;get bill table insert point
					;------------------------------------------
					;------------------------------------------
					;Initializing
					;------------------------------------------
  (cso_tran)
  (setvar "osmode" 0)
  (princ
    "\nAnalyzing entity... \nBegin to create Epin bill table, please wait..."
  )
  (if (not (tblsearch "appid" "mxb_epid"))
    (regapp "mxb_sepid")
  )
  (setq	all_mxb_ent
	 nil
	epin_count 0
	all_count 0
	pin_count 0
  )
 
(ini_epnum)					
  (setq p_sel (ssget))
  (princ "sdsd")
  (setq i 0)
  (setq ip 0)
  (setq inum 0)
  (setq ipnum 0)
  (if pin_count
    (setq ipnum pin_count)
  )
  (if epin_count
    (setq inum epin_count)
  )
  (if p_sel
    (progn
      (setq ent_count (sslength p_sel))

      (while (< i ent_count)
	(setq ent_nam (ssname p_sel i))
	(setq ent_type_list (assoc '0 (entget ent_nam)))
	
	(if (= "ARC" (cdr ent_type_list))
	  (progn
	    (setq ent_type_ang1 (assoc '50 (entget ent_nam)))
	    (setq ent_type_ang2 (assoc '51 (entget ent_nam)))
	    (if	(= (rtos pi)
		   (rtos (abs (- (cdr ent_type_ang2) (cdr ent_type_ang1))))
		)


	      (progn
		(setq pin_data (entget ent_nam))
		(epposdeal_Epin_c "P")
		(princ "pin\ ")
		(setq ipnum (+ ipnum 1))
	      )
	    )
	  )
	)
	;****************************
	(if (= "CIRCLE" (cdr ent_type_list)) 
	  (progn
	    (setq pin_data (entget ent_nam))
	    (epposdeal_Epin_c "E")
	    (princ "EPIN\ ")
	    (setq inum (+ inum 1))
	  )
	)
	(setq i (+ i 1))
      )
      (setq all_count (+ all_count epin_count))
      (if (> epin_count 0)
	(princ (strcat "\nFound"
		       " "
		       (itoa epin_count)
		       " "
		       "kinds of ejector pin!"
	       )
	)
      )
    )
    (princ "\nNot found any ejector pin!")
  )





  (ac_lxy_set)
  (prin1)
)
					;********************************** End of function ***********************************;







					;************************* Begin create ejector pin bill table ************************;
(defun epposdeal_Epin_c	(hole_type /)
  (setq cenpt (cdr (assoc '10 (entget ent_nam))))
  (setq ox (car cenpt))
  (setq oy (car (cdr cenpt)))
  (setq x (rtos (- ox x1) 2 3))		;X座标值
  (setq y (rtos (- oy y1) 2 3))		;Y坐标什
  
  (progn
    (setq pos (cdr (assoc '10 pin_data))
	  dia (* (cdr (assoc '40 pin_data)) 2)


	  cot (strcat "%%c" (rtos dia))
    )
    (if	(= "P" hole_type)
      (setq num ipnum)
      (setq num inum)
    )
    (setq epid (strcat hole_type (itoa (+ num 1))))
    
  )
  (pid_insert hole_type)

  (princ "ok" )
)
					;********************************** End of function ***********************************;








(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)
)
					;********************************** End of function ***********************************;


					;********************************* Create bill table **********************************;
					;********************************** End of function ***********************************;



					;********************************** End of function ***********************************;

					;******************** Main function start ************************;
(defun pid_insert (p_type/ )
  (setvar "osmode" 0)
  (setq sel_ent (ssadd))
  (setq insterpt (list (atof x) (atof y) 0))
  (command "ucs" "")
					;if
  (command "insert" "epid.dwg" cenpt dia "" "")
  (setq sel_ent (ssadd (entlast) sel_ent))

  (if (not (tblsearch "style" "lxy2"))
    (command "-style" "lxy2" "txt" "" 0.6 "" "" "" "")
    (setvar "textstyle" "lxy2")
  )
  (setq textpt (polar cenpt (* (/ pi 4) -1) (+ (/ dia 2) 2.5)))
  
  (command "text" "j" "mc" textpt 2.5 0 (strcat "#" epid))
  (setq sel_ent (ssadd (entlast) sel_ent))
  (command "text"
	   "j"
	   "ml"
	   (polar textpt (* (/ pi 2) -1) 2)
	   1.0
	   0
	   (strcat "(X" x)
  )
  (setq sel_ent (ssadd (entlast) sel_ent))
  (command "text"
	   "j"
	   "ml"
	   (polar textpt (* (/ pi 2) -1) 3.2)
	   1.0
	   0
	   (strcat "Y" y ")")
  )
  (setq sel_ent (ssadd (entlast) sel_ent))

					;(setvar "textstyle" st_old)
					;-----------------------------------------------------
					;Make screw block and add extend data in it
					;-----------------------------------------------------
  
  (mblk	(strcat "AC_xyq_blk" epid)
	cenpt
	sel_ent
  )
  (setq	xd (strcat epid	" "		;item number
		   x " "
		   y " "
		   (rtos Dia) " "	;dim diameter
		
)
  )					;meter or inch flag
  (setq xd (list (list -3 (list "epid" (cons 1000 xd)))))
  (mxdata (entlast) xd)
  (setvar "useri2" (+ 1 (getvar "useri2")))
  (setvar "osmode" os_old)
)
					;*************************************** End of function ****************************************;


(defun cir_list (/ )
  (setq cenpt (cdr (assoc '10 (entget ent_nam))))
  (setq ox (car cenpt))
  (setq oy (car (cdr cenpt)))
  (setq x (rtos (- ox x1) 2 3))		;X座标值
  (setq y (rtos (- oy y1) 2 3))		;Y坐标什
  (setq	pos (cdr (assoc '10 pin_data))
	dia (* (cdr (assoc '40 pin_data)) 2)


	cot (strcat "%%c" (rtos dia))
  )
  (setq c_list (cons c_list (cons 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -