乐筑天下

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

[编程交流] lisp for for sum text number b

[复制链接]

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:13:16 | 显示全部楼层
对不起,我对表格一无所知,也许其他人可以插话在表格中获取结果列表。
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:14:21 | 显示全部楼层
谢谢你的努力。但是
 
它仅在该图形中工作,在另一个具有相同类型的图形中不工作,并且当其具有多行文字时也不工作。
 
谢谢
22.dwg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:19:48 | 显示全部楼层
一些额外的建议从拾取文字或多行文字返回assoc 8 ssget this way its layer Independent的层名称开始
 
使用文本、多行文字过滤器制作列表显然需要2个defuns,如果需要,请使用正确的一个制作列表。
 
为什么vlsort list不先通过a-z或a-z,然后用一个例程向文本添加1*。
 
若你们制作一个列表,那个么我在一周前发布了一个代码示例,介绍了如何从列表中制作一个表。搜索表格示例。将尝试查找。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 23:21:11 | 显示全部楼层
>
>
 
  1. (defun c:addme (/  trunc data ss i e match var opt fr sy)
  2. ;;;        pBe04Mar2014                ;;;
  3. (defun trunc (s m [b]v w[/b])
  4. (atoi        (if m
  5.   (substr s (+ 2 (vl-string-position [b]v[/b] s)))
  6.   (substr s (+ 2 (vl-string-position [b] w[/b] s nil t)))
  7. )
  8. )
  9. )  
  10. [b](initget "Pack Bolt")
  11. (setq opt (getkword "\nChoose Option [Pack Washer/Bolt Information]"))
  12. (setq var
  13.       (if (eq opt "Bolt")
  14. '(77 42  "*M##`**")
  15. '(80 45  "*PW-*mm")
  16.       )
  17. fr (car var)
  18.      sy (cadr var))[/b]
  19. (if  (setq data nil
  20.     ss         (ssget        "_X"
  21.                 [b](list '(0 . "TEXT")
  22.                       (cons 1 (last var))
  23.                   '(8 . "25_Bolt designation,7_Graphics")
  24.                  )[/b]
  25.          )
  26.      )
  27.    (progn
  28.      (repeat (setq i (sslength ss))
  29. (setq e (ssname ss (setq i (1- i))))
  30. (setq data (cons (cdr (assoc 1 (entget e))) data))
  31.      )
  32. (setq
  33.   data (vl-sort        data
  34.                 '(lambda (b c)
  35.                    (cond
  36.                      ((< (setq d[b] (trunc b t fr sy )[/b]) [b](setq f (trunc c t fr sy)))[/b] t)
  37.                      ((= d f) (< [b](trunc b nil fr sy)[/b] [b](trunc c nil fr sy)[/b]))
  38.                    )
  39.                  )
  40.        )
  41. )
  42.      (While (setq a (car data))
  43. (setq ref (substr a (1+ (vl-string-position[b] (car var)[/b] a))))
  44. (setq match (vl-remove-if-not
  45.               '(lambda (s) (wcmatch s (strcat "*" ref)))
  46.               data
  47.             )
  48. )
  49. (princ (strcat "\n"
  50.                ref
  51.                " = "
  52.                (itoa (apply '+
  53.                             (mapcar '(lambda (k)
  54.                                        (if (zerop (atoi k))
  55.                                          1
  56.                                          (atoi k)
  57.                                        )
  58.                                      )
  59.                                     match
  60.                             )
  61.                      )
  62.                )
  63.        )
  64. )
  65. (setq data (vl-remove-if '(lambda (y) (member y match)) data))
  66.      )
  67.    )
  68. )
  69. (princ)
  70. )
  71. (vl-load-com)
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:23:26 | 显示全部楼层
谢谢你的建议,但我不知道如何做lisp程序。我对此一无所知。
 
你能帮帮我吗。
 
我们的一个朋友在某种程度上帮助了我。
 
谢谢
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:28:06 | 显示全部楼层
哇,它的工作非常感谢pBe。。。
 
谢谢你的帮助。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:32:21 | 显示全部楼层
这个例子为任何感兴趣的人制作一个表格,因为你需要添加这个来制作表格http://www.cadtutor.net/forum/showthread.php?84472-Entmake Table with AutoLISP&高亮显示=Table。
 
Pbe发布的代码创建了一个名为“Data”的列表,您可以通过(nth 2 Data)查看它。第三个变量从0开始。请参阅示例中的代码需要更改列表的名称。
 
如果你幸运的话,Pbe会在他的代码中添加一个表。
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:33:59 | 显示全部楼层
这是可行的,但要做得更好一些。可以按顺序给出这样的结果吗
 
无需将此文本设置为表格格式。如下命令提示符中的结果适合我
 
M16*35=1
M16*45=1
M16*50=16
M16*55=6
M16*60=4
M16*65=126
M16*75=8
M16*70=2
M16*80=2
M24*75=32
M24*95=36
M24*100=12
M24*110=44
 
对不起,如果我问这是不可能的
 
谢谢
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 23:38:44 | 显示全部楼层
这是可能的,但你必须等到明天anjan008,我甚至可以添加一个表来配合
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:40:56 | 显示全部楼层
谢谢你真是太好了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:09 , Processed in 0.839203 second(s), 70 queries .

© 2020-2025 乐筑天下

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