怎么获取标注线的角度?
本帖最后由 taoyi0727 于 2019-2-11 15:42 编辑用dxf 50 但是有的标注有50有的没有不知道为什么
大家有没有什么好的办法获取标注线的角度/弧度(cdr (assoc 50 (entget (car (entsel)))))
自己搞了半天 用了黄大师的代码还是有个地方没有搞定(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)
)
写出来了 就只是求到了想要的结果 程序写不好 还画了两个辅助圆
求大神能改进下
(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))
(entdel name1)
(entdel name2)
(if (<
(distance (cdr (assoc 13 name-dxf)) (car pts))
(distance (cdr (assoc 13 name-dxf)) (cadr pts))
)
(setq pt3 (car pts))
(setq pt3 (cadr pts))
)
(angle pt3 pt1)
)
我 是判断 10.14组码 之间的距离,但是有个问题,10.14的定位点可能会重合,这样就判断不出来了
页:
[1]