本帖最后由 crazylsp 于 2012-7-28 22:15 编辑
;;选择 红 色下划线上方的标题文字以集中修改属性 ;;问题: 实现只对文字下方两条线的作出加入选择集的行为,如果下方一条线的就不加入选择集
(defun c:tt()
(setq ss (ssget"X" '((0 . "*text") ) )
ssl (sslength ss )
j 0
enlst (ssadd)
)
(repeatssl
(setq en (ssname ss j)
ent (entget en )
inspt (cdr (assoc 10 ent) )
oldh (cdr (assoc 40 ent) )
;;以半个文字高度向下方选择线。 pt1 (polarinspt (*1.5 pi)oldh ) )
;;判断语句不会修改 ;;如何修改成: 当标题文字下方的线为两根时而非一根时,才执行标题文字加入选择集? (if (ssget"C" pt1 inspt (list (cons 0"*line") (cons 62 1) ) )
(setq enlst (ssadd enenlst))
)
(setq j(1+ j))
)
(sssetfirst NIL enlst)
(setq newh (getreal"\nenter new high") k 0 )
(repeat(sslength enlst)
(setq ent (entget(ssname enlst k) )
a (assoc 40 ent)
sub (subst(cons 40 newh) a ent) )
(entmod sub)
(setq k (1+ k) )
)
)
|