乐筑天下

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

[编程交流] 前导零#039;属性中的s

[复制链接]

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:30:17 | 显示全部楼层 |阅读模式
大家好,
 
我目前正在开发一个用于电缆ID标签的块程序。标签末尾使用序列号。它们从001、002、003开始,以此类推。当程序插入每个块时,数字将增加1。我遇到的问题是,插入块后,数字中的前导零没有显示。我原以为改变丁津会管用,但事实并非如此。
请参见下图。
 
这有一个变量吗?或者我需要使用某种特殊方法来实现这一点吗?
 
非常感谢您的帮助。
谢谢
113025yk4eev4q6kbiwajw.jpg
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:36:33 | 显示全部楼层
您是否尝试过vl string left trim功能?
 
[编辑]
  1. (vl-string-left-trim "0" "01-N-AV-001")
  2. _$
  3. "1-N-AV-001"
  4. _$

[/编辑]
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:37:07 | 显示全部楼层
  1. (defun AT:NumFix (s n)
  2. ;; Fix number string with leading zeros
  3. ;; s - Number string to fix
  4. ;; n - Number of characters for final string
  5. ;; Alan J. Thompson, 10.29.09
  6. (if (< (strlen s) n)
  7.    (AT:NumFix (strcat "0" s) n)
  8.    s
  9. )
  10. )

 
(位于:NumFix“3”4)->“0003”
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:42:38 | 显示全部楼层
谢谢RenderMan,但我不熟悉VL。我更倾向于一种普通的解决方案。下面是我当前使用的函数。它适用于前导零除外。
 
  1. (defun COMM_SEQN ()
  2. (setq ATAG (strcat "01-N-"OUSE"-"SEQN""))
  3. (setq SS (ssget "_l" (list (cons 0 "INSERT")(cons 66 1))))
  4. (if
  5.    (/= SS nil)
  6.    (progn
  7.      (setq INDEX 0)
  8.      (setq ENAME (ssname SS INDEX))
  9.      (setq ELIST (entget ENAME))
  10.      (while
  11.        (/= (cdr (assoc 0 ELIST)) "SEQEND")
  12.        (setq ELIST (entget ENAME))
  13.        (if
  14.          (= "ID-TAG" (cdr (assoc 2 ELIST)))
  15.          (progn
  16.            (entmod (subst (cons 1 ATAG)(assoc 1 ELIST) ELIST))
  17.            (entupd ENAME)))
  18.          (setq ENAME (entnext ENAME)))))
  19. (princ))
  20. (princ)
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:44:57 | 显示全部楼层
艾伦,这很有趣。看起来我需要提供两个参数,一个字符串和一个数字,如果我理解正确的话。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:48:25 | 显示全部楼层
我的错,秃鹰。
 
艾伦给了你一个很好的选择!(…奖杯架上还有一个,呃,艾伦!)
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:49:32 | 显示全部楼层
 
没问题,我还是很感激你的帮助。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:53:29 | 显示全部楼层
对的第一个是数字字符串,第二个是字符串的所需长度
例如(在:NumFix“1”3处)将产生“001”。
 
谢谢
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:57:24 | 显示全部楼层
 
好的,随着序列的增加,我需要使用一个条件语句。例如:001-009和010-099,因为当它们到达这些点时,由于前导零更少,这些值会发生变化。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:00:26 | 显示全部楼层
艾伦,你的代码激发了我对这个概念的兴趣
 
我喜欢跟踪调用:
 
  1. Entering (PADLEFT&RIGHT "1" "0" 8 5)
  2. Entering (PADLEFT "1" 8 5)
  3.    Entering (PADRIGHT "01" 7 5)
  4.      Entering (PADLEFT "010" 7 4)
  5.        Entering (PADRIGHT "0010" 6 4)
  6.          Entering (PADLEFT "00100" 6 3)
  7.            Entering (PADRIGHT "000100" 5 3)
  8.              Entering (PADLEFT "0001000" 5 2)
  9.                Entering (PADRIGHT "00001000" 4 2)
  10.                  Entering (PADLEFT "000010000" 4 1)
  11. [10] Entering (PADRIGHT "0000010000" 3 1)
  12. [11]   Entering (PADLEFT "00000100000" 3 0)
  13. [12]     Entering (PADRIGHT "000000100000" 2 0)
  14. [13]       Entering (PADLEFT "000000100000" 2 0)
  15. [14]         Entering (PADRIGHT "0000000100000" 1 0)
  16. [15]           Entering (PADLEFT "0000000100000" 1 0)
  17. [16]             Entering (PADRIGHT "00000000100000" 0 0)
  18. [16]             Result:  "00000000100000"
  19. [15]           Result:  "00000000100000"
  20. [14]         Result:  "00000000100000"
  21. [13]       Result:  "00000000100000"
  22. [12]     Result:  "00000000100000"
  23. [11]   Result:  "00000000100000"
  24. [10] Result:  "00000000100000"
  25.                  Result:  "00000000100000"
  26.                Result:  "00000000100000"
  27.              Result:  "00000000100000"
  28.            Result:  "00000000100000"
  29.          Result:  "00000000100000"
  30.        Result:  "00000000100000"
  31.      Result:  "00000000100000"
  32.    Result:  "00000000100000"
  33. Result:  "00000000100000"
  34. Result:  "00000000100000"
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:33 , Processed in 0.632113 second(s), 75 queries .

© 2020-2025 乐筑天下

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