明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2956|回复: 8

[分享]數字加减的lsp

[复制链接]
发表于 2006-5-29 23:00:00 | 显示全部楼层 |阅读模式

ta.lsp 可把text文字裹的数目字加起来

td.lsp 把text文字的数目字减起来

例如: 21 +12 = 33

只要选取文字21及12,再选取任可的一个文字,它就可以便成答案33了.

如此类推.

请给我回覆O

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2007-10-24 18:47:00 | 显示全部楼层
回复 支持 0 反对 1

使用道具 举报

发表于 2006-5-30 15:53:00 | 显示全部楼层
大哥!咋是乱码呀?
发表于 2006-5-30 16:00:00 | 显示全部楼层

老兄!你的TA.LSP咋解不了密呀?

发表于 2007-10-24 20:13:00 | 显示全部楼层
  1. (defun c:td (/ #1 #2 #3 #4 #5 #6 e)
  2. (prompt "\nSelect the text to total area:")
  3. (setq #1 (ssget))
  4. (setq #2 (getstring T "\nType character in front of the number: "))
  5. (if (= #2 "") (setq #2 " "))
  6. (setq #2a (strlen #2))
  7. (setq _total 0 con 0)
  8. (IF #1
  9.    (repeat (sslength #1)
  10.      (setq #3(entget (ssname #1 con)))
  11.      (if (= (cdr (assoc 0 #3)) "TEXT")
  12.        (PROGN
  13.          (setq #4 (cdr (assoc 1 #3)))
  14.          (setq #4(substr #4 #2a))
  15.          (setq _total (+ _total (atof #4)))
  16.          (setq con (1+ con))
  17.        )
  18.      )
  19.    )
  20. )
  21. (prompt "\nSelect the text of deduct area:")
  22. (setq #1 (ssget))
  23. (setq #2a (strlen #2))
  24. (setq _total1 0 con 0)
  25. (IF #1
  26.    (repeat (sslength #1)
  27.      (setq #3(entget (ssname #1 con)))
  28.      (if (= (cdr (assoc 0 #3)) "TEXT")
  29.        (PROGN
  30.          (setq #4(cdr (assoc 1 #3)))
  31.          (setq #4(substr #4 #2a))
  32.          (setq _total1 (+ _total1 (atof #4)))
  33.          (setq con (1+ con))
  34.        )
  35.      )
  36.    )
  37. )
  38. (setq _total2 (- _total _total1))
  39. (setvar "cmdecho" 0)
  40. (setq #5 (CAR (ENTSEL "\nSelect a text change to total area:")))
  41. (setq #6 (entget #5))
  42. (setq #e (subst (cons 1 (strcat #2 (strcat (rtos _total2 2 3) " " "m")))
  43.         (assoc 1 #6) #6))
  44. (princ (substr (cdr (assoc 1 #e)) #2a))
  45. (entmod #e)
  46. (princ)
  47.     (setq sqp (cdr (assoc 10 #e)))
  48.     (setq sqlen (strlen (cdr (assoc 1 #e))))
  49.     (setq sqth (cdr (assoc 40 #e)))
  50.     (setq sqp1 (polar sqp (dtr 0) (* (- sqlen 1.75) sqth)))
  51.     (setq sqp2 (polar sqp1 (dtr 90) (/ sqth 1.025)))
  52.     (setq sqth1 (/ sqth 1.200))
  53.     (command "text" sqp2 sqth1 "0" "2")
  54. (princ))
  55. ;(defun c:td () (c:tot-d))
  56. ;(princ
  57. ;  "\n\tC:TOT-d loaded.  Start command with TD or TOT-D.")
  58. ;(princ)
发表于 2007-10-24 20:15:00 | 显示全部楼层
  1. (defun DTR (a)
  2. (* pi (/ a 180.00)))
  3. (defun c:ta ()
  4. (setq #oldla (getvar "clayer"))
  5. (prompt "\nSelect the text to total area:")
  6. (setq #1 (ssget))
  7. (setq #2 (getstring T "\nType character in front of the number: "))
  8. (if (= #2 "") (setq #2 "1"))
  9. (setq #2a (strlen #2))
  10. (setq _total 0 con 0)
  11. (IF #1
  12.    (repeat (sslength #1)
  13.      (setq #3(entget (ssname #1 con)))
  14.      (if (= (cdr (assoc 0 #3)) "TEXT")
  15.        (PROGN
  16.          (setq #3a (strlen (cdr (assoc 1 #3))))
  17.          (setq #3b (+ (- #3a #2a) 1))
  18.          (setq #4(cdr (assoc 1 #3)))
  19.          (setq #4(substr #4 #2a #3b))
  20.          (setq _total(+ _total (atof #4)))
  21.          (setq con (1+ con))
  22.        )
  23.      )
  24.    )
  25. )
  26. (setvar "cmdecho" 0)
  27. (setq #5 (CAR (ENTSEL "\nSelect a text change to total area:")))
  28. (setq #6 (entget #5))
  29. (if (= #2 "1")
  30. (progn
  31. (setq #e (subst (cons 1 (strcat (rtos _total 2 3) "m"))
  32.         (assoc 1 #6) #6))
  33. )
  34. )
  35. (if (> #2a 1)
  36. (progn
  37. (setq #e (subst (cons 1 (strcat #2 (strcat (rtos _total 2 3)" " "m")))
  38.         (assoc 1 #6) #6))
  39. )
  40. )
  41. (princ (substr (cdr (assoc 1 #e)) #2a))
  42. (entmod #e)
  43.     (setq sqp (cdr (assoc 10 #e)))
  44.     (setq sqlen (strlen (cdr (assoc 1 #e))))
  45.     (setq sqth (cdr (assoc 40 #e)))
  46.     (setq #la (cdr (assoc 8 #e)))
  47.     (setq sqp1 (polar sqp (dtr 0) (* (- sqlen 1.75) sqth)))
  48.     (setq sqp2 (polar sqp1 (dtr 90) (/ sqth 1.025)))
  49.     (setq sqth1 (/ sqth 1.200))
  50.     (command "layer" "s" #la "")
  51.     (command "text" sqp2 sqth1 "0" "2")
  52. (command "layer" "s" #oldla "")
  53. (princ))
发表于 2007-10-24 21:09:00 | 显示全部楼层

这种程序网上有好多呢

我现在就有一个这样的程序呢,也是从网上下载的

发表于 2010-10-12 09:09:00 | 显示全部楼层
谢谢楼上的分享,参考下,很感激
发表于 2023-8-31 10:21:44 | 显示全部楼层
謝謝樓上的分享,參考下,很感激
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 05:49 , Processed in 0.172131 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表