大家好,
我发布的代码效果很好,但我似乎觉得为同一个属性再次单步遍历选择集有些过分。我尝试了几种不同的方法,在单个选择集中多次编辑属性都无济于事,但无法使其正常工作。如蒙指导,不胜感激。
提前感谢,
秃鹰
- ;/////////////////////////////////////////////////////////////////////////////////////////
- ;
- ; F06 - Increment Attribute Value.
- ;
- (defun CIT_IAV ()
- (cond
- ((= CIT:IDFS "0")(setq ATAG$ (strcat ""FLRN$"-"BTAG$"-"SEQN$"")))
- ((= CIT:IDFS "1")(setq ATAG$ (strcat ""FLRN$""IDFR$"-"BTAG$"-"SEQN$""))))
- (setq SSET (ssget "_l" (list (cons 0 "INSERT")(cons 66 1)))
- INDX 0
- ENAM (ssname SSET INDX)
- ELST (entget ENAM))
- (while
- (/= (cdr (assoc 0 ELST)) "SEQEND")
- (setq ELST (entget ENAM))
- (if
- (= "ID-TAG" (cdr (assoc 2 ELST)))
- (progn
- (entmod (subst (cons 1 ATAG$)(assoc 1 ELST) ELST))
- (entupd ENAM)))
- (setq ENAM (entnext ENAM)))
- (setq INDX (1+ INDX)
- SEQN# (atoi SEQN$)
- SEQN# (+ SEQN# 1)
- SEQN$ (itoa SEQN#)
- SEQN$ (CIT_AT:NumFix SEQN$ 3)
- CIT:SEQN SEQN$)
- (CIT_RA)
- (princ))
- ;
- ;/////////////////////////////////////////////////////////////////////////////////////////
- ;
- ; F07 - Rotate Attribute.
- ;
- (defun CIT_RA ()
- (setq SSET (ssget "_l" (list (cons 0 "INSERT")(cons 66 1)))
- INDX 0
- ENAM (ssname SSET INDX)
- ELST (entget ENAM))
- (while
- (/= (cdr (assoc 0 ELST)) "SEQEND")
- (setq ELST (entget ENAM))
- (if
- (= "ID-TAG" (cdr (assoc 2 ELST)))
- (progn
- (entmod (subst (cons 50 RAD#)(assoc 50 ELST) ELST))
- (entupd ENAM)))
- (setq ENAM (entnext ENAM)))
- (setq INDX (1+ INDX))
- (princ))
- ;
- ;/////////////////////////////////////////////////////////////////////////////////////////
- ;
|