乐筑天下

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

[编程交流] t计算备选方案

[复制链接]

14

主题

68

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 13:12:32 | 显示全部楼层 |阅读模式
有人有我可以使用的重新编号lisp例程吗?我正在寻找比autocad的tcount命令更简单的使用方法。
 
条件:
1.将对当前图形中的所有数字或带有前缀的数字(不包括外部参照和块)扣除或添加给定值(x表示附加值,x表示扣除值)。
2、提示输入起始编号和结束编号。(将代码限制在这些给定数字内)
3.必须包括带有任何前缀的文本,如A1、COL1等(中间无空格)
5、保留所有原文属性。
 
非常感谢你。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 13:16:46 | 显示全部楼层
你查过李的增量编号套件了吗?我认为这可能值得一看。
 
http://lee-mac.com/numinc.html
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 13:21:14 | 显示全部楼层
谢谢你的推荐
 
我还推荐IrnéBarnard的“AutoIncr”-LISP&DCL,可从caddons存储库获得。
回复

使用道具 举报

14

主题

68

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 13:22:58 | 显示全部楼层
非常感谢您的建议。我要找的是一种更简单、直接到点的编码,它不涉及选择或对话框。只需输入增量/减量编号、开始编号和结束编号,就可以了。正如他们所说,越简单越好。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 13:27:37 | 显示全部楼层
有几个自定义lisp例程可以“简单”地完成这项任务。互联网搜索应该可以找到其中一个或多个。
回复

使用道具 举报

14

主题

68

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 13:31:03 | 显示全部楼层
 
非常感谢你的建议。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 13:31:40 | 显示全部楼层
在这里可以找到两个用于递增数字的宏。。。http://www.cadeverything.com/help/showthread.php/2826-Automatic-incrementing-of-numbers-in-LT
 
宏是最简单的。将宏指定给按钮。
 
具有递增编号的引线lisp例程可以在此处找到。。。http://www.theswamp.org/index.php?topic=25254.0
 
下载INCNUM的副本。lsp在此。。。http://autocad.xarch.at/code/tanzillo/ghindex.html
 
增量文本和增量文本块lisp例程可以在这里找到。。。http://www.cadlispandtips.com/2011/01/lisp-increment-text.html
回复

使用道具 举报

14

主题

68

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 13:34:51 | 显示全部楼层
再次感谢您抽出时间。那我就得走很长的路了。干杯
 
 
对不起,我放弃得太早了。我在你的一个链接上找到了下面的代码,非常接近我要查找的内容。唯一缺少的是“开始”和“结束”数字提示进行选择。有没有人可以帮助修改代码以包含这些行?
 
 
  1. (defun extract (s / i prefix number suffix)
  2.   (setq i 0 prefix "" number "" suffix "")
  3.   (repeat (strlen s)
  4.      (setq c (substr s (setq i (1+ i)) 1))
  5.      (cond
  6.         (  (and (wcmatch c "#")
  7.                 (eq suffix ""))
  8.            (setq number (strcat number c)))   ; 3
  9.         (  (and (eq c "-")
  10.                 (= suffix number "")
  11.                 (wcmatch
  12.                    (substr s (1+ i) 1) "#"))
  13.            (setq number (strcat number c)))   ; 3
  14.         (  (eq number "")
  15.            (setq prefix (strcat prefix c)))   ; 3
  16.         (t (setq suffix (strcat suffix c))))) ; 5
  17.   (if (not (zerop (strlen number)))           ; 3
  18.       (list prefix number suffix)
  19.   )
  20. )
  21. (defun C:INCNUM ( / ss off e d s s1 i fltr)
  22. (setq fltr '((0 . "TEXT") (1 . "*#*")))
  23. (cond
  24.    ((not (setq ss (ssget fltr))))               ; 4
  25.    ((not (setq off (getint "\nIncrement: "))))  ; 4
  26.    (  (zerop off)
  27.       (princ "\nValue must be non-zero."))
  28.    (t (setvar "cmdecho" 0)
  29.       (command ".undo" "g")
  30.       (repeat (setq i (sslength ss))
  31.          (setq e (ssname ss (setq i (1- i)))   ; 3
  32.                d (entget e)
  33.                s (cdr (assoc 1 d)))            ; 3
  34.          (if (setq s (extract s))              ; 3
  35.            (entmod
  36.              (list
  37.                (cons -1 e)
  38.                (cons 1
  39.                  (strcat
  40.                    (car s)
  41.                    (itoa
  42.                       (+ off (atoi (cadr s)))) ; 4
  43.                    (caddr s)))))))             ; 7
  44.       (command ".undo" "e")))                  ; 3
  45. (princ)
  46. )
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 13:39:24 | 显示全部楼层
Artek,我不确定你的代码是否像你想象的那么简单。你提到一个起始数字和一个结束数字。这些是做什么用的?毕竟,您说过要在图形中添加/减去所有现有的文字编号。有什么好处?一般来说,最好用示例展示您希望程序做什么,并解释示例。
回复

使用道具 举报

14

主题

68

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 13:41:32 | 显示全部楼层
 
谢谢你的邀请。使用上述代码(IncNum)作为参考,我需要它提示用户要处理的数字限制(开始和结束提示),而不是选择带有数字的文本进行递增/递减。代码只处理这两个给定值内的数字。假设我在我的画上有数百条文字,文字从“Unit-01”到“Unit-300”。如果我需要在100单元之后再加5个单元,那么我必须将从101单元到300单元的所有文本增加5。因此,代码将提示以下内容:增量值为5,起始数字为101,结束数字为300。代码只会将给定范围(101-300)内的文本增加5,并保留1-100不变。因此,01单元到100单元的文本保持不变,101单元。。。300号机组将改为106号机组。。。。分别为305号机组。
 
 
现有文本:
01号机组。。。。。单元-300
 
提示:
增量值:5;或输入-扣除值
起始编号:101;提示1
结束编号:300;提示2
 
请注意:用于替换IncNum代码中的选择提示的范围(提示1和2)。
 
结果:
01号机组。。。。。单元-100->不变
101单元。。。。单元-300->单元-106。。。。。305单元
 
图纸中的文本有时没有按数字顺序排列,因此很难手动定位和选择,因此需要开始和结束数字。该图纸也有子文本,其编号与主文本相同,但前缀不同(如Bath-01…Bath-300),也应更新。因此,代码应该适用于所有带有数字的文本,而不管其前缀如何,有或没有分隔符(例如“-”或空格),但属性除外,即块或外部参照中的属性。我认为,经过一些快速测试,“IncNum”(如上所述)已经满足了所有条件,只需要包含起始和结束(范围)数字的编码。如果你需要更多的例子,请告诉我。
 
我知道我要找的不是那么简单。我只是说,与早期建议的提供了许多有用特性的优秀代码相比。我只是在寻找一个可以实现两个功能的函数,即在给定范围内增加或减少文本中的数字。
 
再次感谢!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 00:49 , Processed in 3.238421 second(s), 72 queries .

© 2020-2025 乐筑天下

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