大家好,
下面的代码在所有选定的块中循环并更改属性,每个块都会增加一个数字。
但是,最后生成的实体得到的数字最低。。。第一个生成的实体得到的数字最高。。。
所以它循环如下:ent new=>old。
我怎样才能扭转局面?
所以循环如下:ent old=>ent new
- (defun PUNTENHERNUMMEREN ( blockselectie huidigelayer / nieuwpuntnummer )
- (setq i 0)
- (setq e (ssname blockselectie i)) ;get an ename
- (setq nieuwpuntnummer (LM:getattributevalue e "$NUMMER" )) ;Eerste entity puntgroepnummer
- (setq nieuwpuntnummer (strcat (substr nieuwpuntnummer 1 1) "001")) ;Nieuw startnummer maken
- (setq nieuwpuntnummer (atoi nieuwpuntnummer)) ;Loop counter reset
- (setq n (sslength blockselectie)) ;Aantal entities in selectie
- (repeat n ;Repeat aantal keer
- (setq e (ssname blockselectie i)) ;get an ename
- (LM:setattributevalue e "$NUMMER" (itoa nieuwpuntnummer)) ;Attribute van block aanpassen
- (setq nieuwpuntnummer (+ nieuwpuntnummer 1)) ;Nummer verhogen
- (setq i (1+ i)) ;Volgende entity
- (setq bestaandpuntnummer bestaandpuntnummer) ;Laatste return hoogstepuntnummer
- ) ;Einde repear
- (princ (strcat "\nTotaal: " (itoa n) " punten hernummerd."))
- )
|