自己搞了半天 用了黄大师的代码 还是有个地方没有搞定 - (defun c:tt (/ hh:twoentsinters name1 name2 name-dxf pt1 pt2 pt3 pts r)
- (defun HH:TwoEntsInters (e1 e2 Flag / OBJ1 OBJ2 PTL PTS)
- (setq obj1 (vlax-ename->vla-object e1))
- (setq obj2 (vlax-ename->vla-object e2))
- (setq pts (vlax-invoke obj1 'Intersectwith obj2 Flag))
- (while pts
- (setq ptl (cons (list (car pts) (cadr pts)) ptl))
- (setq pts (cdddr pts))
- )
- ptl
- )
- (setq name-dxf (entget (car (entsel))))
- (setq pt1 (cdr (assoc 10 name-dxf)))
- (setq pt2 (cdr (assoc 11 name-dxf)))
- (setq r (cdr (assoc 42 name-dxf)))
- (entmake (list
- '(0 . "CIRCLE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbCircle")
- (cons 10 pt1)
- (cons 40 r)
- )
- )
- (setq name1 (entlast))
- (entmake (list
- '(0 . "CIRCLE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbCircle")
- (cons 10 pt2)
- (cons 40 (distance pt1 pt2)
- )
- )
- )
- (setq name2 (entlast))
- (setq pts (HH:TwoEntsInters name1 name2 0));交点列表 有两个点不知道怎么判断
- (setq pt3 .......)
- (entdel name1)
- (entdel name2)
- (angle pt3 pt1)
- )
|