;; ▓ (lt:dim-definingPoint edata) ;; [功能] 获取标注的定义点 ;; [参数] edata---标注对象的 DXF 定义数据 ;; [返回] 包含两个点的表,依次为 (第一个尺寸线定义点 第二个尺寸线定义点) (defun lt:dim-definingPoint (edata / dxf typ p10 p13 p14 ang) (setq dxf (lambda (x) (cdr (assoc x edata))) typ (- (dxf 70) 32) p10 (dxf 10) p13 (dxf 13) ) (list (cond ((zerop typ) (setq ang (dxf 50) p13 (list (car p13) (cadr p13) (last p10))) (inters p10 (polar p10 ang 1) p13 (polar p13 (+ ang (/ pi 2)) 1) nil) ) ((= typ 1) (setq p14 (dxf 14) ang (if (equal p14 p13 1e-7) 0 (angle p14 p13))) (if (equal p10 p14 1e-7) p13 (polar p10 ang (dxf 42)) ) ) ) p10 ) ) 用法:根据两个定义点求出角度 (apply 'angle (lt:dim-definingPoint (entget (car(entsel))))) |