乐筑天下

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

[编程交流] lisp用于顺序编号

[复制链接]

34

主题

123

帖子

90

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 11:08:12 | 显示全部楼层 |阅读模式
我经常需要按顺序对行进行编号和重新编号。从上到下-逐列。
 
见附件。
 
数字为文字或多行文字。有人能提出一种写lisp的方法吗?这样我只需要选择我想重新编号的文本(数字),它就会逐渐编号1-2-3。。。。
 
我被卡住了,因为这些数字在列中,我想在单个选择中完成。
测验图纸
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 11:14:58 | 显示全部楼层
萨胡
 
-以较低版本保存附着的dwg
-给它一个快速菜单>文本>自动文本编号
-在这里
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:16:05 | 显示全部楼层
李的NumInc可能是你最好的选择。我再次链接到它,麻生太郎在他的http上加倍了。
 
这是我几个月前做的一个(只是玩排序)。
 
就像我说的,李的可能会完全满足你的需要。我知道我在用它眨眼:
 
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 11:21:00 | 显示全部楼层
alanjt公司
你的对群众工作很有用
我喜欢这个
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:25:59 | 显示全部楼层
它很笨重,所以要小心。那只是一场深夜的比赛。
回复

使用道具 举报

34

主题

123

帖子

90

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 11:26:03 | 显示全部楼层
alanjt:我试过你的Lisp程序。我需要做的比你的代码要简单得多。所以我正在研究它以适应我的需要。
 
我需要重新编号的文本不是一条完美的直线(列),它们都有前缀(')。
 
像这样:
 
'12      '12
“sa”13
“1”gh
'23      '12
'45       '23
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:31:15 | 显示全部楼层
这条线索可能会引起一些兴趣。
回复

使用道具 举报

34

主题

123

帖子

90

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 11:33:54 | 显示全部楼层
我被困住了
 
-如何对文本选择集排序(单列上下顺序)
 
需要一些帮助:哎呀:
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:38:43 | 显示全部楼层
在我发布的链接中有一些例子。
 
下面是一个示例,使用文本选择集并按Y值从上到下排序。。。
 
  1. (if (setq ss (ssget '((0 . "TEXT"))))
  2. (vl-sort
  3.    ((lambda (i / lst)
  4.       (while (setq e (ssname ss (setq i (1+ i))))
  5.         (setq lst (cons e lst))
  6.       )
  7.     )
  8.      -1
  9.    )
  10.    (function (lambda (a b) (> (caddr (assoc 10 (entget a))) (caddr (assoc 10 (entget b))))))
  11. )
  12. )
回复

使用道具 举报

34

主题

123

帖子

90

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 11:40:37 | 显示全部楼层
Alanjt:
我使用了你上次发布的代码。列表按照插入顺序排序,而不是按照从上到下的y轴排序。
 
是因为“caddr”返回第三个元素吗?我做错了什么?
 
我需要做的是对图纸上的一列文本重新编号。
 
 
 
 
  1. (defun C:sorty()
  2. (if (setq ss (ssget '((0 . "TEXT"))))
  3. (vl-sort
  4.    ((lambda (i / lst)
  5.       (while (setq e (ssname ss (setq i (1+ i))))
  6.         (setq lst (cons e lst))
  7.       )
  8.     )
  9.      -1
  10.    )
  11.    (function (lambda (a b) (> (caddr (assoc 10 (entget a))) (caddr (assoc 10 (entget b))))))
  12. )
  13. )
  14. ;************
  15. (and
  16.    
  17.    ((lambda (i)
  18.       (while (setq e (ssname ss (setq i (1+ i))))
  19.         (setq ent (entget e))
  20.         (entmod (subst (cons 1 (strcat "'" (rtos (+ i 1) 2 0))) ;new item
  21.                        (assoc 1 ent) ; old item
  22.                        ent ;list
  23.                 )
  24.         )
  25.       )
  26.     )
  27.      -1
  28.    )
  29. )
  30. (princ)
  31. ); DEFUN
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 11:33 , Processed in 1.163878 second(s), 72 queries .

© 2020-2025 乐筑天下

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