回复 chpmould 的帖子
 - (defun c:tt (/ cir curve pl pts el sta enda cp p1 p2)
- (while (and
- (setq cir (car (entsel "\n选择圆:")))
- (setq curve (car (entsel "\n选择分割曲线:")))
- ) ;_ and
- (setq pl (vlax-invoke
- (vlax-ename->vla-object cir)
- 'IntersectWith
- (vlax-ename->vla-object curve)
- acExtendNone
- ) ;_ vlax-invoke
- ) ;_ setq
- (while pl
- (setq pts (append pts (list (list (car pl) (cadr pl) (caddr pl))))
- pl (cdr (cdr (cdr pl)))
- ) ;_ setq
- ) ;_ while
- (if (> (length pts) 1)
- (progn
- (setq el (entget cir)
- cp (cdr (assoc 10 el))
- p1 (car pts)
- p2 (last pts)
- sta (angle cp p1)
- enda (angle cp p2)
- el (vl-remove-if
- '(lambda (x) (or (= -1 (car x)) (= 0 (car x))))
- el
- ) ;_ vl-remove-if
- el (append
- (list '(0 . "ARC"))
- el
- (list '(100 . "AcDbArc") (cons 50 sta) (cons 51 enda))
- ) ;_ append
- ) ;_ setq
- (entmake el)
- (entdel cir)
- ) ;_ progn
- ) ;_ if
- ) ;_ while
- ) ;_ defun
|