这个函数存在的问题如题,我实在是不清楚为什么了,有时修改结果是正确的,有时又会跳跑掉
什么原因呢?大神请出手调教,不胜感激…… - ;函数说明:选择一个标注、输入一点,修改所选择标注的脚点位置
- (defun c:tt ()
- (setq
- N_DimEntName (car (entsel))
- N_GetPoint (getpoint)
- N_DimStart (cdr (assoc 10 (entget N_DimEntName)));取得dim尺寸的起点
- N_DimStartPoint (cdr (assoc 14 (entget N_DimEntName)));取得dim尺寸脚的起点
- N_DimEndPoint (cdr (assoc 13 (entget N_DimEntName)));取得dim尺寸脚的起点
- N_DimDistance (cdr (assoc 42 (entget N_DimEntName)));取得dim尺寸的测量长度
- N_DimEnd (polar N_DimStart (+ (* 0.5 pi) (angle N_DimStart N_DimStartPoint)) N_DimDistance);取得dim尺寸的终点
- N_PerPoint (PerToLine N_GetPoint N_DimStart N_DimEnd)
- N_NewStartPoint (polar N_DimStart (angle N_PerPoint N_GetPoint) (distance N_PerPoint N_GetPoint))
- N_NewEndPoint (polar N_DimEnd (angle N_PerPoint N_GetPoint) (distance N_PerPoint N_GetPoint))
- N_EntList (subst (cons 14 N_NewStartPoint ) (assoc 14 (entget N_DimEntName)) (entget N_DimEntName))
- N_EntList (subst (cons 13 N_NewEndPoint ) (assoc 13 N_EntList) N_EntList)
- )
- (entmod N_EntList)
- )
- (defun PerToLine (cp p1 p2 / norm)
- (setq norm (mapcar '- p2 p1)
- p1 (trans p1 0 norm)
- cp (trans cp 0 norm)
- )
- (trans (list (car p1) (cadr p1) (caddr cp)) norm 0)
- )
|