ZZXXQQ 发表于 2008-3-23 11:35:00

再试试将组码60设成零。将程序中'(60 . 256)改成'(60 . 0)

xiaoxiao1982 发表于 2008-3-23 13:26:00

<p>试过了,改成60.0之后多了一个可编辑的属性,是不是图块里面的每个属性都是一个实体,必须对每个属性都分别设置才可以呀</p><p>&nbsp;</p>

ZZXXQQ 发表于 2008-3-23 16:49:00

应该是吧。手边无高版本没法试。

etom999 发表于 2008-3-24 07:16:00

也试过OR,但只修改其中一个属性(增量),<br/>取决于定义块时,的先后顺序,只修改先出现的那个属性,<br/>后出现的就不修改了....<br/>

ZZXXQQ 发表于 2008-3-24 16:06:00

本帖最后由 作者 于 2008-3-28 20:41:34 编辑

再试试。


;拷贝属性加1&设定所有属性可编辑明经 ZZXXQQ 2008.3.18 2008.3.27
(DEFUN C:ADD1 ()
(SETVAR "CMDECHO" 0)
(IF (AND (SETQ S1 (CAR (ENTSEL "\nSelect Block with Attrib 选择带属性图块 :")))
          (SETQ ENT (ENTGET S1))
    (= (CDR (ASSOC 0 ENT)) "INSERT")
    (= (CDR (ASSOC 66 ENT)) 1)
) (PROGN
(COMMAND ".UNDO" "BE")
(SETQ PT0 (CDR (ASSOC 10 ENT)) N nil M nil)
(WHILE (SETQ PT1 (GETPOINT PT0 "\nInsert Point 插入点 :"))
   (COMMAND ".COPY" S1 "" PT0 PT1)
   (SETQ ENT1 (ENTGET(ENTLAST)) ENT2 ENT1)
   (WHILE (= (CDR(ASSOC 0 (SETQ ENT2 (ENTGET(ENTNEXT(CDR(ASSOC -1 ENT2))))))) "ATTRIB")
    (IF (= (CDR(ASSOC 2 ENT2)) "KKS_CODE") (PROGN
   (SETQ TXTF (CDR(ASSOC 1 ENT2)) TXTA "" I 1 SL (STRLEN TXTF))
   (WHILE (AND (> (SETQ TA (SUBSTR TXTF I 1)) "9") (< TA "0") (< I SL))
      (SETQ TXTA (STRCAT TXTA TA) I (1+ I))
   )
   (IF (<= I SL) (PROGN
      (SETQ N (1+ (IF N N (ATOI (SUBSTR TXTF I))))
               TXTF (STRCAT TA (IF (< N 10) "00" (IF (< N 100) "0" "")) (ITOA N))
               ENT1 (SUBST (CONS 1 TXTF) (ASSOC 1 ENT2) ENT2))
      (ENTMOD ENT2)
      (ENTMOD ENT1)
      (ENTUPD (ENTLAST))
   ))
    ))
    (IF (= (CDR(ASSOC 2 ENT2)) "SNA") (PROGN
   (SETQ TXTF (CDR(ASSOC 1 ENT2)) TXTA "" I 1 SL (STRLEN TXTF))
   (WHILE (AND (> (SETQ TA (SUBSTR TXTF I 1)) "9") (< TA "0") (< I SL))
      (SETQ TXTA (STRCAT TXTA TA) I (1+ I))
   )
   (IF (<= I SL) (PROGN
      (SETQ M (1+ (IF M M (ATOI (SUBSTR TXTF I))))
               TXTF (STRCAT (SUBSTR TXTF 1 2) (IF (< M 10) "00" (IF (< M 100) "0" "")) (ITOA M))
               ENT1 (SUBST (CONS 1 TXTF) (ASSOC 1 ENT2) ENT2))
      (ENTMOD ENT2)
      (ENTMOD ENT1)
      (ENTUPD (ENTLAST))
   ))
    ))
    (IF (ASSOC 60 ENT2) (PROGN
   (SETQ ENT2 (SUBST '(60 . 0) (ASSOC 60 ENT2) ENT2))
   (ENTMOD ENT2)
   (ENTMOD ENT1)
   (ENTUPD (ENTLAST))
    ))
   )
)
(COMMAND ".UNDO" "E")
))
(SETVAR "CMDECHO" 1)
(PRINC)
)

xiaoxiao1982 发表于 2008-3-25 00:02:00

<p>这样好像不行,增量复制不对了,原来不可见的属性现在可见了,但是仍然不能编辑</p>

ZZXXQQ 发表于 2008-3-25 09:45:00

35楼已改,可以增量复制了。但能不能编辑就不知道是怎么回事了。

jeafly 发表于 2008-3-27 01:39:00

<p>为什么看不到呢????</p>

etom999 发表于 2008-3-27 07:22:00

本帖最后由 作者 于 2008-3-27 9:19:04 编辑 <br /><br /> ZZXXQQ:谢谢,基本可以了,<br/>有两个问题:<br/>1. 第二个 N 应为 M<br/>2. 属性值最好能采用字母+数字分离方式(字母个数不定)<br/>ie: -H101==&gt;-H102<br/>       H001   ==&gt;H0002 (应该为H002)

ZZXXQQ 发表于 2008-3-28 20:44:00

35楼已改。再试试。
页: 1 2 3 [4] 5 6 7
查看完整版本: [求助]属性块的增量复制