大家好,
最后有东西在工作。。。!!!
它需要图形中的四个层。
A-ANNO-TEXT(文本)
A-ANNO-DIMS(尺寸)
A-FLOR-HRAL(扶手)
A-DETL-HIDN(隐藏线)
假设文字和尺寸标注是注释性的。
我知道你们会有太多的评论。。。等待。。!!!
- (defun c:str()
- (vl-load-com)
- (setq CURRENTLAYER (getvar "CLAYER"))
- (setq OSM (getvar "OSMODE"))
- (setq CuttingAt 1.2)
-
- (setq C1(getpoint "\nStair Start Point:"))
- (setq C2(getpoint C1 "\nStair End Point:"))
- (setq width 1.0)
- (setq tread 0.3)
- (setq rise 0.15)
- (setq FH 3.0)
- (setq HOfst 0.05)
- (setq HOvhg 0.20)
- (setq HThik 0.05)
- (setq info (strcat "\nStair Width : " (rtos Width)))
- (setq info (strcat info ", Tread : " (rtos tread)))
- (setq info (strcat info ", Rise : " (rtos Rise)))
- (setq info (strcat info ", Floor Height : " (rtos FH)))
- (setq info (strcat info ", Handrail Offset : " (rtos HOfst)))
- (setq info (strcat info ", Handrail Overhang : " (rtos HOvhg)))
- (setq info (strcat info ", Handrail Thickness : " (rtos HThik)))
-
- (prompt info)
- (textscr)
- (initget 1 "Yes No")
- (setq ConfirmInfo (getkword "\nDo you want to change these default stair properties? (Yes or No):"))
- (textscr)
- (if
- (eq ConfirmInfo "Yes")
- (progn
- (setq Width(getdist "\nWidth:<1.00>"))
- (if (null Width) (setq Width 1.00))
- (setq info (strcat "\nStair Width : " (rtos Width)))
-
- (setq tread(getdist "\nTread:<0.30>"))
- (if (null tread) (setq tread 0.30))
- (setq info (strcat info ", Tread : " (rtos tread)))
- (setq Rise(getdist "\nRise:<0.15>"))
- (if (null Rise) (setq Rise 0.15))
- (setq info (strcat info ", Rise : " (rtos Rise)))
- (setq FH(getdist "\nFloor Height:<3.00>"))
- (if (null FH) (setq FH 3.00))
- (setq info (strcat info ", Floor Height : " (rtos FH)))
- (setq HOfst(getdist "\nHandrail Offset:<0.05>"))
- (if (null HOfst) (setq HOfst 0.05))
- (setq info (strcat info ", Handrail Offset : " (rtos HOfst)))
- (setq HOvhg(getdist "\nHandrail Overhang:<0.25>"))
- (if (null HOvhg) (setq HOvhg 0.25))
- (setq info (strcat info ", Handrail Overhang : " (rtos HOvhg)))
- (setq HThik(getdist "\nHandrail Thickness:<0.05>"))
- (if (null HThik) (setq HThik 0.05))
- (setq info (strcat info ", Handrail Thickness : " (rtos HThik)))
- (prompt info)
- );Progn
- );If
- (initget 1 "Yes No")
- (setq Confirm (getkword "\nIs it the first flight? (Yes or No):"))
- (setq HalfWidth (/ Width 2))
- (setq NumberOfSteps(Round (/ FH Rise)))
- (setq Dir(Angle C1 C2))
- (setq s1 (polar c1 (+ (Getper Dir) (dtor 180)) HalfWidth))
- (setq s2 (polar s1 (Getper Dir) HOfst))
- (setq s3 (polar s2 (Getper Dir) HThik))
- (setq s4 (polar s3 (Getper Dir) (* (- HalfWidth (distance s1 s3))2)))
- (setq s5 (polar s4 (Getper Dir) HThik))
- (setq s6 (polar s5 (Getper Dir) HOfst))
- (setq DimOuter (polar s1 (+ (dtor 180) dir) (* 4 tread)))
- (setq DimClear (polar s1 (+ (dtor 180) dir) (* 2 tread)))
- (setvar "OSMODE" 0)
- (command "-DIMSTYLE" "R" "Annotative")
- (setvar "CLAYER" "A-ANNO-DIMS")
- (command "_DIMALIGNED" s1 s6 DimOuter)
- (command "_DIMALIGNED" s3 s4 DimClear)
- (if
- (eq Confirm "Yes")
- (setvar "CLAYER" "A-FLOR-STRS")
- (setvar "CLAYER" "A-DETL-HIDN")
- );If
- (if
- (eq Confirm "Yes")
- (progn
- (setq ContRisers (fix (/ CuttingAt rise)))
- (setq HrLengthCont(+ HOvhg (* (- ContRisers 1) tread)))
- (setq ha1 (polar s4 (+ (dtor 180) dir) HOvhg))
- (setq ha2 (polar s5 (+ (dtor 180) dir) HOvhg))
- (setq ha3 (polar ha1 dir HrLengthCont))
- (setq ha4 (polar ha2 dir HrLengthCont))
- (setq hb1 (polar s2 (+ (dtor 180) dir) HOvhg))
- (setq hb2 (polar s3 (+ (dtor 180) dir) HOvhg))
- (setq hb3 (polar hb1 dir HrLengthCont))
- (setq hb4 (polar hb2 dir HrLengthCont))
- (setvar "CLAYER" "A-FLOR-HRAL")
- (command "_LINE" ha4 ha2 ha1 ha3 "")
- (command "_LINE" hb4 hb2 hb1 hb3 "")
- (setq Outer1 s1)
|