
- (DEFUN C:TOCEN ()
- (SETVAR "CMDECHO" 0)
- (COMMAND ".UNDO" "BE")
- (SETQ OLDOS (GETVAR "OSMODE"))
- (SETVAR "OSMODE" 0)
- (PRINC "\nSelect Circle(s) :")
- (IF (SETQ SS (SSGET '((0 . "CIRCLE")))) (PROGN
- (SETQ I -1)
- (REPEAT (SSLENGTH SS)
- (SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I))))
- RR (CDR (ASSOC 40 ENT))
- PCC (CDR (ASSOC 10 ENT))
- J 0 CP (LIST))
- (REPEAT 180
- (SETQ CP (CONS (POLAR PCC (/ (* 2 J PI) 180) RR) CP)
- J (1+ J))
- )
- (SETQ S1 (SSGET "CP" CP)
- S1 (SSDEL (SSNAME SS I) S1)
- K -1)
- (REPEAT (SSLENGTH S1)
- (SETQ ENT1 (ENTGET (SSNAME S1 (SETQ K (1+ K))))
- ENM (CDR (ASSOC 0 ENT1)))
- (COND
- ((= ENM "LINE")
- (SETQ PT1 (CDR (ASSOC 10 ENT1)) PT2 (CDR (ASSOC 11 ENT1)))
- )
- ((= ENM "ARC")
- (SETQ PC (CDR (ASSOC 10 ENT1))
- R (CDR (ASSOC 40 ENT1))
- PT1 (POLAR PC (CDR (ASSOC 50 ENT1)) R)
- PT2 (POLAR PC (CDR (ASSOC 51 ENT1)) R)
- )
- )
- ((OR (= ENM "LWPOLYLINE") (= ENM "SPLINE"))
- (SETQ PT1 (CDR (ASSOC 10 ENT1)) PT2 (CDR (ASSOC 10 (REVERSE ENT1))))
- )
- (T (SETQ PT1 nil PT2 nil))
- )
- (IF (AND PT1 PT2) (PROGN
- (SETQ PT (IF (< (DISTANCE PT1 PCC) (DISTANCE PT2 PCC)) PT1 PT2))
- (COMMAND "STRETCH" "C" PT PT "" PT PCC)
- ))
- )
- )
- ))
- (COMMAND ".UNDO" "E")
- (SETVAR "OSMODE" OLDOS)
- (SETVAR "CMDECHO" 1)
- (PRINC)
- )
|