|
(DEFUN C:ROUGH ()
(SETVAR "CMDECHO" 0)
(SETQ OLDOS1 (GETVAR "OSMODE")
SC (GETVAR "DIMSCALE")
H (* (IF (> SC 0) SC 1) (GETVAR "DIMTXT"))
OLDL (GETVAR "CLAYER"))
(SETVAR "OSMODE" 0)
(WHILE (SETQ PT1 (GETPOINT "\nInsert Point 插入点 :"))
(SETQ P0 (OSNAP PT1 "NEA")
N (GETSTRING "\nEnter Roughness to Mark 输入粗糙度 Ra="))
(SETVAR "OSMODE" 0)
(IF P0 (SETQ A (ANGLE P0 PT1) N1 "N")
(SETQ A (/ PI 2) P0 PT1 N1 "Y") )
(SETQ ANG (* (/ A PI) 180))
(IF (OR (EQUAL ANG 30 1) (EQUAL ANG 210 1)) (PROGN
(SETQ PT1 (GETPOINT P0 "\nLeader Rough Point 点取引出线点 :")
A (/ PI 2) ANG 90
PT2 (POLAR PT1 PI (* (/ H 3.5) 5))
PT3 (POLAR PT1 0 (* (/ H 3.5) 5)))
(IF (> (DISTANCE PT2 P0) (DISTANCE PT3 P0))
(COMMAND "PLINE" P0 PT3 PT2 "")
(COMMAND "PLINE" P0 PT2 PT3 "")
)
(SETQ P0 PT1)
))
(SETQ A0 (- (IF (OR (< ANG 30) (> ANG 210)) (- ANG 180) ANG) 90)
A1 (- A (/ PI 2)) H3 (* H 0.75) H1 (+ H3 H3) H2 (+ H1 H1)
PT (POLAR (POLAR P0 A (* H3 3.0)) (+ A1 PI) (* H3 0.3))
PT1 (POLAR P0 (+ (/ PI 6) A) H1) PT2 (POLAR PT1 A1 H1)
PT3 (POLAR PT2 (+ (/ PI 3) A1) H1) PT4 (POLAR P0 A H3))
(IF (= (STRLEN N) 0)
(COMMAND "PLINE" PT1 P0 PT3 "" "DONUT" H3 H3 PT4 "")
(COMMAND "PLINE" PT2 PT1 P0 PT3 "" "TEXT" "M" PT H A0 N)
)
(SETQ PT (POLAR (POLAR PO (+ A1 PI) H2) PI (* H3 0.3)))
(IF (= (STRCASE N1) "Y")
(COMMAND "LAYER" "M" "TXT" "" "TEXT" "C" PT H1 A "其余"))
)
(SETVAR "OSMODE" OLDOS1)
(SETVAR "CMDECHO" 0)
(PRINC)
)