📄 sldnew.lsp
字号:
(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 + -