乐筑天下

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

[编程交流] 数字总和

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:49:10 | 显示全部楼层 |阅读模式
我发现了一些非常好的lisp,它们可以很好地在(dtext、mtext、MLEADER等)中添加一系列数字,但还没有找到一种在使用逗号时可以添加所有数字的lisp。我想找到一种可以用逗号添加所有类型文本编号(dtext、mtext、MLeader等)的方法,并允许我将总和作为dtext或mtext插入。任何帮助都将不胜感激。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:57:51 | 显示全部楼层
搜索parse。lsp关于Lee mac有几个版本,它将列出一个分隔逗号字符串x,y,z=(x y z)的字符串列表
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:01:59 | 显示全部楼层
逗号是用作千位分隔符还是小数点?
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:07:39 | 显示全部楼层
谢谢你,比格尔,我实际上使用了李的版本,当我写李的时候,我会回答他的回答是的,我们的一些员工确实使用逗号作为分隔符。我上传了几个我们正在尝试做的小例子。
实例图纸
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:16:17 | 显示全部楼层
第二部分,你的文本实际上并不像第一次出现的那样在表中,所以只需要抓取一列文本,使用Lee的parse lisp并将数字相加。
 
第一部分选择引线实际上是比较文本部分,并将具有相同文本的引线的数字相加。
 
明天可能有时间多看一看,或者李可能会在晚上跳进去。
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:23:36 | 显示全部楼层
你是对的,第二部分的文本不是一个表(我们要用块计数和我们需要的信息创建表还有很长的路要走,但这是另一篇文章)。我们使用了以下lisp(作者未知),但它既不放置文本,也不适用于多行文字和多重引线。
 
  1. ;;;add selected numbers.  highlight numbers that cannot convert.
  2. (defun c:add (/ txtss badset total cntr ent elist str nstr)
  3. (setvar "cmdecho" 0)
  4. (setq total 0
  5. cntr 0
  6. nstr (list))  
  7. (princ "\nSelect numbers to add: ")
  8. (setq txtss (ssget '((0 . "TEXT")) ))
  9. (while (< cntr (sslength txtss))
  10.    (setq ent (ssname txtss cntr)
  11.   elist (entget ent))
  12.    (setq str (cdr (assoc 1 elist)))
  13.    (if (and (> (strlen str) 3) (wcmatch str "*`,*"))
  14.      (repeat (/ (strlen str) 4)
  15. (setq nstr (cons (substr str (- (strlen str) 2) 3) nstr))
  16. (setq str (substr str 1 (- (strlen str) 4)))
  17. );repeat
  18.      );if
  19.    (if nstr
  20.      (foreach v nstr
  21. (setq str (strcat str v)))
  22.      );if
  23.    (setq total (+ total (atof str)))
  24.    (setq cntr (1+ cntr))
  25.    (setq nstr (list))
  26.    );while
  27. (princ (strcat "\nTotal: " (rtos total 2 2)))
  28. (setvar "cmdecho" 0)
  29. (princ)
  30. );eof

 
这里是我们过去使用的另一个(作者不详),它几乎满足了我们的需要(适用于多行文字),但不适用于逗号或多重引线。当我使用lisp例程时,我是一个新手,只会有足够的危险性,我曾尝试在某种程度上将两者结合起来,但运气不好,我不确定我是否能够让它们与MLEADER一起工作。如果我只是运气不好,想得到mleaders的总数,那么我很乐意让这两个一起工作。
 
  1. ; ADDN04.LSP - ADDS NUMBER STRINGS AND CONVERTS TO SQUARE FOOT AND ACRES with 4 decimal places
  2. ;
  3. (defun C:ADDNO4 ()
  4. (SETQ CMD (GETVAR "CMDECHO"))
  5. (SETVAR "CMDECHO" 0)
  6. (SETQ SS NIL)
  7. (PRINC "/nSELECT TEXT:")(PRINC)
  8. (SETQ SS (SSGET))
  9. (SETQ NO -1)
  10. (setq TX 0)
  11. (REPEAT (SSLENGTH SS)
  12.    (SETQ NO (1+ NO))
  13.    (SETQ ENT (ENTGET (SSNAME SS NO)))
  14.    (SETQ OLDL (ASSOC 1 ENT))
  15.    (SETQ TXX (CDR OLDL))
  16.    (SETQ TXX (ATOF TXX))
  17.    (SETQ TX (+ TX TXX))
  18. )
  19. [color="red"]  (CLUF)
  20. (SETQ TX (* TX LUF))
  21. (SETQ MID (GETPOINT "\nSELECT MIDDLE POINT OF TEXT:"))
  22. (SETQ TXT (RTOS TX 2 4))
  23. (COMMAND "TEXT" "M" MID "" "0" TXT)
  24. (PRIN1)
  25. (SETVAR "CMDECHO" CMD)
  26. )[/color]
  27. (DEFUN CLUF ()
  28. (SETQ LUN (GETVAR "LUNITS"))
  29. (IF (OR (= LUN 3) (= LUN 4))
  30.      (SETQ LUF 0.00694444)
  31.      (SETQ LUF 1)
  32. )
  33. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 17:26:18 | 显示全部楼层
请阅读代码发布指南,并编辑您的帖子,以包括代码标签(而不是报价标签)。
[noparse]
  1. Your Code Here
[/noparse]=
  1. Your Code Here
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:34:30 | 显示全部楼层
新手错误。。。。。。。它已修订。
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:42:18 | 显示全部楼层
我和fixo先生的lsp很熟(http://www.cadtutor.net/forum/showthread.php?26151-文本字符串中的数字总和/第2页,只需添加数千。。。
  1. (defun C:STX (/ cpent elist en ip newtxt pt ss sum sumtxt txt)
  2. (princ "\n\t\t>>>  Select text to get summ >>>")
  3. (if
  4. ;;select texts/mtexts on screen :
  5. (setq ss (ssget '((0 . "*TEXT"))))
  6. ;; if selected then :
  7. (progn
  8. ;; store the first text entity for using 'em further :
  9. (setq cpent (ssname ss 0))
  10. ;; set initial sum to zero :
  11. (setq sum 0.)
  12. ;; loop trough selected texts/mtexts :
  13. (while
  14.    ;; get the first text in selection :
  15.    (setq en (ssname ss 0))
  16.    ;; get entity list of them :
  17.    (setq elist (entget en))
  18.    ;; get the textstring by key 1 from entity list :
  19.    (setq txt (cdr (assoc 1 elist)))
  20.    ;; create output string :
  21.    (setq sumtxt
  22.    ;; concatenate strings :
  23.    (strcat
  24.      ;; convert digits to string :
  25.      (rtos
  26.        ;; add to summ the digital value of text :
  27.        (setq sum (+ (atof txt) sum))
  28.        ;; 2 is for metric units (3 for engineering) :
  29.        2
  30.        ;; set precision by current :
  31.        (getvar "dimdec")))
  32.   )
  33.    ;; delete entity from selection set :
  34.    (ssdel en ss)
  35.    )
  36. ;; display message in the command line:
  37. (princ (strcat "\nSumm=" sumtxt))
  38. (setq pt (getpoint "\nSpecify the new text location: "))
  39. ;; get the insertion point of stored entity :
  40. (setq ip (cdr (assoc 10 (entget cpent))))
  41. ;; copy text entity to the new destination point :
  42. (command "_copy" cpent "" ip pt)
  43. ;; get the last created entity :
  44. (setq newtxt (entlast))
  45. ;; get entity list of them :
  46. (setq elist (entget newtxt))
  47. ;; modify entity list with new text string :
  48. (entmod (subst (cons 1 sumtxt)(assoc 1 elist) elist))
  49. ;; update changes :
  50. (entupd newtxt)
  51. )
  52. )
  53. (princ)
  54. )
  55. (princ "\nStart command with STX...")
  56. (princ)
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:43:50 | 显示全部楼层
 
李,你有文本计算器吗http://lee-mac.com/textcalculator.html有添加数千的选项和一次选择多个数字的选项吗?谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 12:51 , Processed in 0.478146 second(s), 72 queries .

© 2020-2025 乐筑天下

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