房间编号排序
<p>敬请各位高手帮忙,相信大家都在设计过程中有需要给房间命名、编号的问题,我的命名办法是用属性块。现在的问题出来了:</p><p>1、如何能快速的利用块属性进行快速编号?注意不能是简单的01,02,一般都要加前缀,而且前缀可能不相同。</p><p>2、由于设计的调整,需要尽可能保持编号的连续性,如在两个连续的编号中间插了一个新的房间编号,后面的编号能否按原顺序快速更改?比如在16和17之间又加了一个新房间,将新房间编号为17,那原来的17将变为18,18变19……能否通过程序让其调整,手动是会死人的^_^</p><p>诚心请教,先谢谢各位高手!</p><p>在建筑工程板块看到<strong><font face="Verdana" color="#61b713">jaminth<font color="#000000">高人写的排序号软件,可惜只能排单行文字</font></font></strong></p> <p>帖子沉了,先顶起来!</p><p>是各位高手不屑呢?还是不会?或者是……</p><p>很麻烦的问题,就请高手指点一二吧</p> <p>请楼主给个图样。</p> <p>谢谢楼上这位兄弟,传个文件,还截了个屏,你看一下。</p> <p>各位大侠帮帮忙吧!</p><p>都快急死我啦 !</p> 写了个加1的程序,先试试。;明经 ZZXXQQ 房间号加1 2007.10.4
;先将插入的房间号改好,运行程序,选改好的房间号,程序自动将大于等于房间号的房间号加1。
(DEFUN C:ADD1 ()
(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
(SETQ ENTF (ENTGET(ENTNEXT(CDR(ASSOC -1 (ENTGET(ENTNEXT(CDR(ASSOC -1 ENT))))))))
TXTF (CDR (ASSOC 1 ENTF)))
(SETQ SS (SSGET "X" '((0 . "INSERT") (66 . 1)))
SS (SSDEL S1 SS))
(SETQ I -1)
(REPEAT (SSLENGTH SS)
(SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I)))))
(SETQ ENT1 (ENTGET(ENTNEXT(CDR(ASSOC -1 (ENTGET(ENTNEXT(CDR(ASSOC -1 ENT)))))))))
(IF (>= (SETQ TXTS (CDR (ASSOC 1 ENT1))) TXTF) (PROGN
(SETQ STL (STRLEN TXTS)
TXT1 (SUBSTR TXTS 1 (- STL 3))
TXT2 (1+ (ATOI (SUBSTR TXTS (- STL 2))))
TXT2 (STRCAT (IF (< TXT2 10) "00" (IF (< TXT2 20) "0" "")) (ITOA TXT2))
ENT1 (SUBST (CONS 1 (STRCAT TXT1 TXT2)) (ASSOC 1 ENT1) ENT1))
(ENTMOD ENT1)
(ENTMOD ENT)
))
)
))
(PRINC)
)
<p>这要找这样的程序</p><p></p> 很感兴趣看一看 <p>兄弟高人啊!这正是我要的东西!</p><p>确实太好了,谢谢zzxxqq兄弟!</p><p>试用了一下,发现有三个小问题,提出来希望修改后能让程序更完善!</p><p>1.现在是选一个属性块后,其后所有的属性块都改,能加一个只修改选择不?</p><p>2.我的房间编号很多,超过了一百,所以用三位数字编号,而且按楼层和区域分区编号,如一层A区编号用"A1-001",在ADD1后,房间编号从A1-019后都由"A1-***"变为"A1-**",房间号只有两位了.</p><p>3.楼梯和卫生间等编号"ST-**"/"TO-**"在ST后添加了"00",且编号减1.且每运行一次,就加两0再减1.</p><p>以上都是小问题,相信ZZXXQQ老兄一定能解决,烦劳啦!</p><p>我把我需要编号的文件也传上来,你试运行一下,就知道我说的这些问题啦.再次感谢</p> <p>文件没传上来?</p><p>再来</p>
页:
[1]
2