 - (defun sk_get_circle_cen (en / obj x cen)
- (if (and en
- (= (type en) 'ENAME)
- )
- (progn
- (vlax-for X
- (vla-item
- (vla-get-blocks
- (vla-get-ActiveDocument (vlax-get-acad-object))
- )
- (vla-get-name (setq OBJ (vlax-ename->vla-Object en)))
- )
- (if (wcmatch (vla-get-ObjectName X) "AcDbCircle")
- (setq cen (vla-get-center X ))
- )
- )
- (if cen (vlax-safearray->list(vlax-variant-value cen )))
- )
- )
- )
- ;;获取等比缩放块块内圆心,非等比缩放不正确
- ;;code by edata@mjtd 2015年7月29日
- (defun c:tt(/ _dxf en cen1 ds a41 a50 p10 cen2)
- (defun _dxf(e i)(cdr(assoc i (entget e))))
- (setq en(car(entsel)))
- (setq cen1(sk_get_circle_cen en))
- (setq ds(distance '(0 0 0) cen1))
- (setq a41(_dxf en 41)
- a50(_dxf en 50)
- p10(_dxf en 10)
- )
- (setq cen2(polar p10 (+ (angle '(0 0 0) cen1) a50) (* ds a41)))
- (entmake (list '(0 . "CIRCLE") (cons 10 cen2) (cons 40 100)))
- )
|