乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 89|回复: 2

[编程交流] 相反的流程列表

[复制链接]

76

主题

312

帖子

254

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
390
发表于 2022-7-5 16:24:49 | 显示全部楼层 |阅读模式
大家好,
 
下面的代码在所有选定的块中循环并更改属性,每个块都会增加一个数字。
但是,最后生成的实体得到的数字最低。。。第一个生成的实体得到的数字最高。。。
所以它循环如下:ent new=>old。
我怎样才能扭转局面?
所以循环如下:ent old=>ent new
 
  1. (defun PUNTENHERNUMMEREN ( blockselectie huidigelayer / nieuwpuntnummer )
  2. (setq i 0)
  3. (setq e (ssname blockselectie i))                                                 ;get an ename
  4. (setq nieuwpuntnummer (LM:getattributevalue e "$NUMMER" ))                        ;Eerste entity puntgroepnummer
  5. (setq nieuwpuntnummer (strcat (substr nieuwpuntnummer 1 1) "001"))                ;Nieuw startnummer maken
  6. (setq nieuwpuntnummer (atoi nieuwpuntnummer))                                        ;Loop counter reset
  7. (setq n (sslength blockselectie))                                                ;Aantal entities in selectie
  8. (repeat n                                                                ;Repeat aantal keer
  9.         (setq e (ssname blockselectie i))                                 ;get an ename
  10.         (LM:setattributevalue e "$NUMMER" (itoa nieuwpuntnummer))        ;Attribute van block aanpassen
  11.         (setq nieuwpuntnummer (+ nieuwpuntnummer 1))                        ;Nummer verhogen
  12.         (setq i (1+ i))                                                        ;Volgende entity
  13.         (setq bestaandpuntnummer bestaandpuntnummer)                        ;Laatste return hoogstepuntnummer
  14. )                                                                        ;Einde repear
  15. (princ (strcat "\nTotaal: " (itoa n) " punten hernummerd."))
  16. )
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 17:22:44 | 显示全部楼层
只是快速修改。。。但未测试。。。
 
  1. (defun PUNTENHERNUMMEREN ( blockselectie huidigelayer / nieuwpuntnummer i e n )
  2. (setq i 0)
  3. (setq e (ssname blockselectie (1- (sslength blockselectie))))                   ;get an ename
  4. (setq nieuwpuntnummer (LM:getattributevalue e "$NUMMER" ))                      ;Eerste entity puntgroepnummer
  5. (setq nieuwpuntnummer (strcat (substr nieuwpuntnummer 1 1) "001"))              ;Nieuw startnummer maken
  6. (setq nieuwpuntnummer (atoi nieuwpuntnummer))                                   ;Loop counter reset
  7. (setq n (sslength blockselectie))                                               ;Aantal entities in selectie
  8. (repeat n                                                                       ;Repeat aantal keer
  9.    (setq e (ssname blockselectie (setq n (1- n))))                               ;get an ename
  10.    (LM:setattributevalue e "$NUMMER" (itoa nieuwpuntnummer))                     ;Attribute van block aanpassen
  11.    (setq nieuwpuntnummer (+ nieuwpuntnummer 1))                                  ;Nummer verhogen
  12.    (setq bestaandpuntnummer bestaandpuntnummer)                                  ;Laatste return hoogstepuntnummer
  13.    (setq i (1+ i))
  14. )                                                                               ;Einde repeat
  15. (princ (strcat "\nTotaal: " (itoa i) " punten hernummerd."))
  16. )
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
390
发表于 2022-7-5 17:37:57 | 显示全部楼层
很好,成功了!
 
非常感谢!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-20 23:38 , Processed in 0.444267 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表