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

📄 apn_new.lsp

📁 plc设计编程软件
💻 LSP
📖 第 1 页 / 共 3 页
字号:
    ) 
    ((and (> angdd 90) (< angdd 135))
      (setq angd (fix (- angdd 90)))
      (setq ang_ref (/ pi 2))
    )
    ((and (> angdd 135) (< angdd 180))
      (setq angd (fix (- 180 angdd)))
      (setq ang_ref pi)
    )
    ((and (> angdd 180) (< angdd 225))
      (setq angd (fix (- angdd 180)))
      (setq ang_ref pi)
    )
    ((and (> angdd 225) (< angdd 270))
      (setq angd (fix (- 270 angdd)))
      (setq ang_ref (* pi 1.5))
    )
    ((and (> angdd 270) (< angdd 315))
      (setq angd (fix (- angdd 180)))
      (setq ang_ref (* pi 1.5))
    )
  )
  (cond 
    ((or (= 14 angd) (= 16 angd))
      (setq angd 15)
    )
    ((or (= 17 angd) (= 19 angd))
      (setq angd 18)
    )
    ((or (= 19 angd) (= 21 angd))
      (setq angd 20)
    )
    ((or (= 22 angd) (= 24 angd))
      (setq angd 23)
    )
  ) 
  (setq ang_n (xh_get (itoa angd) ang_lib))
  (setq basept (cdr (assoc 10 (entget apn_ent))))
  (setq basept (wtou basept))
  (setq l1 (/ (atof stk) (sin (* (/ angd 180.0) pi))))
  (setq l  (atof l))
)
;*************************************** end of function ****************************************;

;********************************* Main modify control function *********************************;
(defun apn_modify()
  (command "undo" "m")
  (setq angd (itoa angd))
  (setq edit_next 1)
  (while (= 1 edit_next) 
    (if (not (new_dialog "APNEDIT" apn_id))
      (exit)
    )
    (ini_apn_dia2)
    (action_tile "IF_H"        "(ch_h)")
    (action_tile "APN_M"       "(mb_act)")
    (action_tile "APN_B"       "(mb_act)")
    (action_tile "APN_D_SEL"   "(d_act)")
    (action_tile "cancel"      "(done_dialog 0)")
    (action_tile "accept"      "(get_apn) (done_dialog 1)")
    (setq what_next (start_dialog))
    (setq apn_next 0)
    (cond 
      ((= 0 what_next)
        (command "undo" "back")
        (setq edit_next 0)
      )
      ((= 1 what_next)
        (setq pick1 nil)
        (setq pick2 nil)
        (if (not err_msg)
          (progn
            (setq l (/ (atof stk) (* (/ angd 180) pi)))
            (setq angd (* (/ angd 180) pi))
            (setq app_apn "OLD")
            (entdel apn_ent)
            (apn_cst)
            (setq edit_next 0)
          )
          (setq edit_next 1)
        )
      )
    )
  )
)
;*************************************** end of function ****************************************;

;*************************** Angle pin zst view main control function ***************************;
(defun zst_main()
  (command "undo" "M")
  (setq zst_nxt 1)
  (while (= 1 zst_nxt)
    (if (not (new_dialog "APNZST" apn_id))
      (exit)
    )
    (action_tile "TVIEW" "(done_dialog 1)")
    (action_tile "BVIEW" "(done_dialog 2)")
    (action_tile "accept" "(done_dialog 3)")
    (action_tile "cancel" "(done_dialog 4)")
    (action_tile "GOLOOK" "(done_dialog 5)")
    (setq zst_next (start_dialog))
    (cond
      ((= 1 zst_next)
        (setq what_sel "A")
        (apn_zst)
      )
      ((= 2 zst_next)
        (setq what_sel "B")
        (apn_zst)
      )
      ((= 3 zst_next)
        (setq zst_nxt 0)
      )
      ((= 4 zst_next)
        (setq zst_nxt 0)
        (command "undo" "B")
      )
      ((= 5 zst_next)
        (command "zoom" "")
      )
    )
  )
)
;*************************************** end of function ****************************************;

;*********************************** Create angle pin zst view **********************************;
(defun apn_zst( / zcpt)
;---------------------------------
;initializing
  (initget 32)
  (setvar "orthomode" 1) 
;---------------------------------
;get center point and calculate parameter
  (while (not zcpt)
    (if (= "A" what_sel)
      (setq zcpt (getpoint pt2 "\nPlease select center point:"))
      (setq zcpt (getpoint (polar basept ang l) "\nPlease select center point:"))
    )
  )
  (setq ang_refv  (+ ang_ref (* pi 0.5)))
  (setq ang_refvv (- ang_ref (* pi 0.5)))
  (setq ang_refh  (+ ang_ref pi))
  (setq hdd (+ (/ hd 2) 0.5))
  (setvar "osmode" 0)
;--------------------------------
;cond
  (cond
;;--------------------------------
;;if selected top view
    ((= "A" what_sel)
      (setq l1 (* (distance pt2 pt3) (sin angd)))
      (if (> ang ang_ref)
        (setq zcpt1 (polar zcpt ang_refv l1))
        (setq zcpt1 (polar zcpt ang_refvv l1))
      )
      (setq opt1 (polar zcpt ang_ref   (+ (/ d 2) 0.5))
	    opt2 (polar zcpt ang_refv  (/ (+ (/ d 2) 0.5) (cos angd)))
	    opt3 (polar zcpt ang_refh  (+ (/ d 2) 0.5))
	    opt4 (polar zcpt ang_refvv (/ (+ (/ d 2) 0.5) (cos angd)))
      )
      (setq ipt1 (polar zcpt1 ang_ref   (+ (/ d 2) 0.5))
	    ipt2 (polar zcpt1 ang_refv  (/ (+ (/ d 2) 0.5) (cos angd)))
	    ipt3 (polar zcpt1 ang_refh  (+ (/ d 2) 0.5))
	    ipt4 (polar zcpt1 ang_refvv (/ (+ (/ d 2) 0.5) (cos angd)))
      )
      (setq olpt1 (polar zcpt 0 (+ (/ d 2) 2))
            olpt2 (polar zcpt (/ pi 2) (+ (/ d 2) 2))
            olpt3 (polar zcpt pi (+ (/ d 2) 2))
            olpt4 (polar zcpt (* pi 1.5) (+ (/ d 2) 2))
      )
      (setq ilpt1 (polar zcpt1 0 (+ (/ d 2) 2))
            ilpt2 (polar zcpt1 (/ pi 2) (+ (/ d 2) 2))
            ilpt3 (polar zcpt1 pi (+ (/ d 2) 2))
            ilpt4 (polar zcpt1 (* pi 1.5) (+ (/ d 2) 2))
      )
      (setq text_zst (polar zcpt (/ pi 4) (/ hd 4)))
      (setq sel_ent (ssadd))
      (command "ellipse" "_c" zcpt opt1 opt2)
      (setq sel_ent (ssadd (entlast) sel_ent))
      (progn 
        (command "linetype" "s" "hidden" "")
        (setvar "cecolor" "yellow")
        (command "ellipse" "_c" zcpt1 ipt1 ipt2)
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" opt1 ipt1 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" opt3 ipt3 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
      )
      (progn 
        (command "linetype" "s" "center" "")
        (setvar "cecolor" "red")
        (command "pline" olpt1 olpt3 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" olpt2 olpt4 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" ilpt1 ilpt3 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" ilpt2 ilpt4 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (setvar "celtype" "bylayer")
        (setvar "cecolor" "bylayer")
      )
      (mblk (strcat "AC_LXY_BLK" (itoa (getvar "useri2"))) zcpt sel_ent)
      (setvar "useri2" (+ 1 (getvar "useri2")))
      (setq xd (strcat 	apn_rep " " 		;item number
			"ZA" " " 		;view flag
			dd " " 			;dim diameter
			(len_round) " " 	;dim length
			"0" " " 		;hidden flag
			if_h_v " " 		;type flag
			mb " " 			;meter or inch flag
			stk " " 		;stroke value
			(rtos l 2 5) " " 	;length
			(rtos ang 2 5)))	;angle
      (setq xd (list (list -3 (list "apn" (cons 1000 xd)))))
      (mxdata  (entlast) xd)
    )
;;-----------------------------------
;;if selected bottom view
    ((= "B" what_sel)
;;;;-----------------------------------
;;;;calculate parameterand point ordinate
      (setq l2 (* (- l (distance basept pt2)) (sin angd)))
      (setq l3 (* (- l (distance basept pt1)) (sin angd)))
      (setq l4 (* l (sin angd)))
      (setq l1 (- l (distance basept pt3)))
      (if (> ang ang_ref)
        (progn
          (setq zcpt1 (polar zcpt ang_refvv (* 4  (sin angd))))
          (setq zcpt2 (polar zcpt ang_refvv l2))
          (setq zcpt3 (polar zcpt ang_refvv l3))
          (setq zcpt4 (polar zcpt ang_refvv l4))
        )
        (progn
          (setq zcpt1 (polar zcpt ang_refv (* 4  (sin angd))))
          (setq zcpt2 (polar zcpt ang_refv l2))
          (setq zcpt3 (polar zcpt ang_refv l3))
          (setq zcpt4 (polar zcpt ang_refv l4))
        )
      )
      (setq hopt1 (polar zcpt4 ang_ref   hdd)
	    hopt2 (polar zcpt4 ang_refv  (/ hdd (cos angd)))
	    hopt3 (polar zcpt4 ang_refh  hdd)
	    hopt4 (polar zcpt4 ang_refvv (/ hdd (cos angd)))
      )
      (setq hipt1 (polar zcpt3 ang_ref   hdd)
	    hipt2 (polar zcpt3 ang_refv  (* hdd (cos angd)))
	    hipt3 (polar zcpt3 ang_refh  hdd)
	    hipt4 (polar zcpt3 ang_refvv (* hdd (cos angd)))
      )
      (setq hiipt1 (polar zcpt3 ang_ref   (/ d 2))
	    hiipt2 (polar zcpt3 ang_refv  (* (/ d 2) (cos angd)))
	    hiipt3 (polar zcpt3 ang_refh  (/ d 2))
	    hiipt4 (polar zcpt3 ang_refvv (* (/ d 2) (cos angd)))
      )
      (setq opt1 (polar zcpt2 ang_ref   (/ d 2))
	    opt2 (polar zcpt2 ang_refv  (/ (/ d 2) (cos angd)))
	    opt3 (polar zcpt2 ang_refh  (/ d 2))
	    opt4 (polar zcpt2 ang_refvv (/ (/ d 2) (cos angd)))
      )
      (setq ipt1 (polar zcpt1 ang_ref   (/ d 2))
	    ipt2 (polar zcpt1 ang_refv  (* (/ d 2) (cos angd)))
	    ipt3 (polar zcpt1 ang_refh  (/ d 2))
	    ipt4 (polar zcpt1 ang_refvv (* (/ d 2) (cos angd)))
      )
      (setq td (- d 2.736))
      (setq iipt1 (polar zcpt ang_ref   (/ td 2))
            iipt2 (polar zcpt ang_refv  (* (/ td 2) (cos angd)))
            iipt3 (polar zcpt ang_refh  (/ td 2))
            iipt4 (polar zcpt ang_refvv (* (/ td 2) (cos angd)))
      )
      (setq lpt1 (polar zcpt  ang_ref   (+ (/ d 2) 2))
            lpt3 (polar zcpt  ang_refh  (+ (/ d 2) 2))
      )
      (if (> ang ang_ref)
        (progn
          (setq ipt5 (polar ipt1 ang_refvv l2))
          (setq ipt6 (polar ipt3 ang_refvv l2))
          (setq ipt7 (polar ipt1 ang_refvv l3))
          (setq ipt8 (polar ipt3 ang_refvv l3))
          (setq lpt2 (polar zcpt ang_refvv (+ l4 (/ hd 2) 2.5)))
          (setq lpt4 (polar zcpt ang_refv  (+ (/ d 2) 2.5)))
        )
        (progn
          (setq ipt5 (polar ipt1 ang_refv l2))
          (setq ipt6 (polar ipt3 ang_refv l2))
          (setq ipt7 (polar ipt1 ang_refv l3))
          (setq ipt8 (polar ipt3 ang_refv l3))
          (setq lpt2 (polar zcpt ang_refv  (+ l4 (/ hd 2) 2.5)))
          (setq lpt4 (polar zcpt ang_refvv (+ (/ d 2) 2.5)))
        )
      )
;;;;--------------------------------------------
;;;;draw bottom view
      (progn
        (setq sel_ent (ssadd))
        (command "ellipse" "_c" zcpt1 ipt1 ipt2)
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "ellipse" "_c" zcpt iipt1 iipt2)
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" ipt1 ipt5 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" ipt3 ipt6 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (if (> ang ang_ref)
          (progn
            (command "arc" opt3 opt4 opt1) 
            (setq sel_ent (ssadd (entlast) sel_ent))
          )
          (progn
            (command "arc" opt1 opt2 opt3)
            (setq sel_ent (ssadd (entlast) sel_ent))
          )
        )
      )
      (progn 
        (command "linetype" "s" "hidden" "")
        (setvar "cecolor" "yellow")
        (command "ellipse" "_c" zcpt3 hipt1 hipt2)
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" ipt5 hiipt1 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" ipt6 hiipt3 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" hipt1 hopt1 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" hipt3 hopt3 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (if (> ang ang_ref)
          (progn
            (command "arc" opt1 opt2 opt3) 
            (setq sel_ent (ssadd (entlast) sel_ent))
            (command "arc" hiipt3 hiipt4 hiipt1) 
            (setq sel_ent (ssadd (entlast) sel_ent))
            (command "arc" hopt3 hopt4 hopt1)
            (setq sel_ent (ssadd (entlast) sel_ent))
          )
          (progn
            (command "arc" opt3 opt4 opt1) 
            (setq sel_ent (ssadd (entlast) sel_ent))
            (command "arc" hiipt1 hiipt2 hiipt3) 
            (setq sel_ent (ssadd (entlast) sel_ent))
            (command "arc" hopt1 hopt2 hopt3)
            (setq sel_ent (ssadd (entlast) sel_ent))
          )
        )
        (setvar "celtype" "bylayer")
        (setvar "cecolor" "bylayer")
      )
      (progn 
        (command "linetype" "s" "center" "")
        (setvar "cecolor" "red")
        (command "pline" lpt1 lpt3 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (command "pline" lpt2 lpt4 "")
        (setq sel_ent (ssadd (entlast) sel_ent))
        (setvar "celtype" "bylayer")
        (setvar "cecolor" "bylayer")
      )
;;;;------------------------------------------
;;;;translate drawing to block and make extend data
      (mblk (strcat "AC_LXY_BLK" (itoa (getvar "useri2"))) zcpt sel_ent)
      (setvar "useri2" (+ 1 (getvar "useri2")))
      (setq xd (strcat 	apn_rep " " 		;item number
			"ZB" " " 		;view flag
			dd " " 			;dim diameter
			(len_round) " " 	;dim length
			"0" " " 		;hidden flag
			if_h_v " " 		;type flag
			mb " " 			;meter or inch flag
			stk " " 		;stroke value
			(rtos l 2 5) " " 	;length
			(rtos ang 2 5)))	;angle
      (setq xd (list (list -3 (list "apn" (cons 1000 xd)))))
      (mxdata  (entlast) xd)
      (setq apn_i (+ apn_i 1))
    )
  )
;--------------------------------
;reset "osmode" var
  (setvar "osmode"  os_old)
)
;*************************************** end of function ****************************************;

⌨️ 快捷键说明

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