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

📄 sldnew.lsp

📁 plc设计编程软件
💻 LSP
📖 第 1 页 / 共 2 页
字号:
(defun Sldnew(     /	ErrSldDia	SldDclID	ScrNo		AngLine
			ValidFlag	inspt		inspt1		inspt2
			SldA		SldW		SldH		SldL
			SldW1		SldW2		SldB 		SldC
			SldM)
  (setvar "cmdecho" 0)
  (command "undo" "m")
  (setq os_old (getvar "osmode")
	la_old (getvar "clayer")
	co_old (getvar "cecolor")
	lt_old (getvar "celtype")
	st_old (getvar "textstyle")
	pw_old (getvar "plinewid")
  )
  (if (not (tblsearch "appid" "ini_layer")) 
    (if (/= 'LIST (type IniLayer)) 
      (progn
	(load "ini_lay")
	(IniLayer)
      )
      (IniLayer)
    )
  )
  (setq SldDclID (load_dialog "Slide"))
;------------------------------------------
;Initializing dialog varies
;------------------------------------------
  (setq ErrSldDia nil)
  (setq AngLine  "1")
;------------------------------------------
  (while (not ErrSldDia)
    (if (not (new_dialog "SLIDE" SldDclID))
      (exit)
    )
    (IniDialog)
    (action_tile "DimW"    "(setq ValidFlag $reason) (Verify \"DimW\")")
    (action_tile "DimA"    "(setq ValidFlag $reason) (Verify \"DimA\")")
    (action_tile "DimH"    "(setq ValidFlag $reason) (Verify \"DimH\")")
    (action_tile "DimL"    "(setq ValidFlag $reason) (Verify \"DimL\")")
    (action_tile "ScrNo"   "(setq ValidFlag $reason) (Verify \"ScrNo\")")
    (action_tile "AddAL"   "(setq AngLine (get_tile \"AddAL\"))")
    (action_tile "Rejt"    "(setq ErrSldDia T) (done_dialog 0)")
    (action_tile "Accpt"   "(setq ErrSldDia T) (done_dialog 1)")
    (action_tile "CSld_Aply" "(setq ContiFlag T) (GetAllInput \"CVIEW\") (if ContiFlag (done_dialog 2))")
    (action_tile "ZSld_Aply" "(setq ContiFlag T) (GetAllInput \"ZVIEW\") (if ContiFlag (done_dialog 3))")
    (setq what_next (start_dialog))
    (cond 
      ((= 0 what_next)
	(command "undo" "b")
      )
      ((= 1 what_next)
	()
      )
      ((= 2 what_next)
	(setq inspt (getpoint "\nInsert Point:"))
	(setvar "osmode" 0)
	(if inspt (DrawSectionView))
	(setvar "osmode" os_old)
      )
      ((= 3 what_next)
	(setq inspt1 (getpoint "\nFirst Point:"))
	(if inspt1
	  (progn
	    (setq inspt2 (getpoint inspt1 "\nSecond Point:"))
	    (setvar "osmode" 0)
	    (DrawFlatView)
	    (setvar "osmode" os_old)
	  )
	)
      )
    )
  )
  (ac_lxy_set)
  (unload_dialog SldDclID)
  (prin1)
)
;------------------------------------------

;------------------------------------------
;Initialize dialog function
;------------------------------------------
(defun IniDialog()
  (IniImage)
  (if (= 'STR (type ScrNo))
    (set_tile "ScrNo" ScrNo)
  )
  (set_tile "AddAL" AngLine)
  (if (< 0 SldW) 
    (progn
      (set_tile "DimW"  (RemZeroR SldW))
      (setq ValidFlag 2)
      (Verify "DimW")
    )
  )
  (if (< 0 SldA) 
    (progn
      (set_tile "DimA"  (RemZeroR SldA))
      (setq ValidFlag 2)
      (Verify "DimA")
    )
  )
  (if (< 0 SldH) 
    (progn
      (set_tile "DimH"  (RemZeroR SldH))
      (setq ValidFlag 2)
      (Verify "DimH")
    )
  )
  (if (< 0 SldL) 
    (progn
      (set_tile "DimL"  (RemZeroR SldL))
      (setq ValidFlag 2)
      (Verify "DimL")
    )
  )
)
;------------------------------------------

;------------------------------------------
;Initialize dialog Image function
;------------------------------------------
(defun IniImage(/ pin_fn)
  (foreach pic_fn '("CSld" "ZSld")
    (start_image pic_fn)
    (slide_image 0 0 (dimx_tile pic_fn) (dimy_tile pic_fn) (strcat pic_fn ".sld"))
    (end_image)
  )
)
;------------------------------------------

;------------------------------------------
;Verify user input
;------------------------------------------
(defun Verify(DimVar / temp msg)
  (if (= 2 ValidFlag)
    (if (or (= "ScrNo" DimVar) (< 0.0 (atof (get_tile DimVar))))
      (cond
	((= "DimA" DimVar)
      	  (setq SldA (atof (get_tile DimVar)))
	  (cond
	    ((< SldA 18) 
	      (setq SldA nil) 
	      (setq msg "Invalid Dim A, Dim A must >=18!")
	    )
	    ((and (>= SldA 18) (< SldA 22))
	      (setq SldB 5
		    SldC 5
		    SldM "5/16\"BSW"
		    SldW1 9.5
		    SldW2 17.5
		    Sldd  (* 0.25 25.4)
	      )
	    )
	    ((and (>= SldA 22) (< SldA 30))
	      (setq SldB 8
		    SldC 5
		    SldM "5/16\"BSW"
		    SldW1 9.5
		    SldW2 20
		    Sldd  (* 0.25 25.4)
	      )
	    )
	    ((>= SldA 30)
	      (setq SldB 12
		    SldC 8
		    SldM "3/8\"BSW"
		    SldW1 13.5
		    SldW2 25
		    Sldd  (* (/ 5 16.0) 25.4)
	      )
	    )
          )
	)
	((= "DimW" DimVar)
	  (setq SldW (atof (get_tile DimVar)))
	  (if (< 0.0 SldH)
	    (cond 
	      ((and (> DimL 0) (<= DimW 90))
	        (if (<= SldH 45) 
		  (setq ApnNum 1 ApnD (* 0.5 25.4))
		  (setq ApnNum 1 ApnD (* 0.625 25.4))
		)
	      )
	      ((and (> DimW 90) (<= DimH 180))
	        (if (<= SldH 45) 
		  (setq ApnNum 2 ApnD (* 0.5 25.4))
		  (setq ApnNum 1 ApnD (* 0.625 25.4))
		)
	      )
	      ((> DimW 180)
		(setq ApnNum 2 ApnD (* 0.75 25.4))
	      )
	    )
	    (setq ApnNum nil ApnD nil)
	  )
	)
	((= "DimH" DimVar)
	  (setq SldH (atof (get_tile DimVar)))
	  (if (< 0.0 SldW)
	    (cond 
	      ((and (> DimW 0) (<= DimW 90))
	        (if (<= SldH 45) 
		  (setq ApnNum 1 ApnD (* 0.5 25.4))
		  (setq ApnNum 1 ApnD (* 0.625 25.4))
		)
	      )
	      ((and (> DimW 90) (<= DimH 180))
	        (if (<= SldH 45) 
		  (setq ApnNum 2 ApnD (* 0.5 25.4))
		  (setq ApnNum 1 ApnD (* 0.625 25.4))
		)
	      )
	      ((> DimW 180)
		(setq ApnNum 2 ApnD (* 0.75 25.4))
	      )
	    )
	    (setq ApnNum nil ApnD nil)
	  )
	)
	((= "DimL" DimVar)
	  (setq SldL (atof (get_tile DimVar)))
	  (if (> SldL 100) 
	    (setq Is_6_Scr t) 
	    (if (> SldL 42)
	      (setq Is_6_Scr nil)
	      (progn
		(setq msg "Dim \"L\" is too small!")
		(setq SldL nil)
	      )
	    )
	  )
	)
	((= "ScrNo" DimVar)
	  (setq ScrNo (lxy_trim (get_tile DimVar)))
	  (if (= "" ScrNo)
	    (setq msg "Invalid Screw item label!")
	    (if (/= "V" (strcase (substr ScrNo 1 1)))
	      (setq msg "Invalid Screw item label!")
	      (if (< (atoi (substr ScrNo 2)) 1)
		(setq msg "Invalid Screw item label!")
		(progn
		  (setq ScrNo (strcat "V" (itoa (atoi (substr ScrNo 2)))))
		  (set_tile "ScrNo" ScrNo)
		)
	      )
	    )
	  )
	  (if msg (setq ScrNo nil))
	)
      )
      (setq msg "Invalid Input!")
    )
  )
  (if (= 2 ValidFlag) 
    (progn
      (setq ValidFlag nil)
      (if msg
	(progn
	  (set_tile DimVar "")
	  (set_tile "ERRMSG" msg)
	)

⌨️ 快捷键说明

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