乐筑天下

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

[编程交流] 对数字进行加法/减法运算

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:17:38 | 显示全部楼层 |阅读模式
你好
 
我是lisp的新手,有一个问题要问所有有经验的lisp程序员。我有一个用于立面的块,它必须具有属性(用于混凝土和饰面立面)。
我想给这个属性添加一个特定的数字。格式是“+7.05”或“-7.00”,我发现了一些LISP,但它们都将格式(如果总和是整数)更改为“7”或“-7”。
 
是否有人使用脚本添加/子构造特定数字,而不删除coma和加号后的数字?我们不必选择一个特定的属性,我可以复制到一个新文件,并从该文件中的所有att.中添加/减去。
 
我发现了一个旧的脚本是由阿斯米写的;
  1. http://www.cadtutor.net/forum/showthread.php?21726-Numerical-Global-Block-Attribute&
和一个简单的
 
  1. (defun AddNumAtt (add tag / e ei et txt)
  2. (setq e (entnext)
  3. tag (strcase tag))
  4. (while (setq e (entnext e))
  5. (setq ei (entget e)
  6. et (cdr (assoc 0 ei)))
  7. (and (= "ATTRIB" et)
  8. (wcmatch (cdr (assoc 2 ei)) tag)
  9. (setq txt (cdr (assoc 1 ei)))
  10. (numberp (setq num (read txt)))
  11. (entmod
  12. (subst (cons 1 (rtos (+ add num) 2 2)) (assoc 1 ei) ei))  ; ) 2 2)  change second 2 for precision.
  13. (entupd e)))
  14. (princ))
  15. ;(AddNumAtt 10 "*") ;  (AddNumatt value to +/-  tagname)

谢谢你的帮助。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:35:17 | 显示全部楼层
 
没有看到冒犯的代码。。。RTOS功能*应该*能够解决这一问题:眨眼:
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:39:00 | 显示全部楼层
实际上,我真的不知道在哪里添加RTOS功能
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 09:52:53 | 显示全部楼层
您的个人资料显示您正在使用AutoCAD LT。对吗?
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:03:49 | 显示全部楼层
通常我使用LT,但我有一个共享许可证,所以现在我使用Autocad 2011。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:08:29 | 显示全部楼层
 
别担心,我们会尽力帮忙的。
 
LISP代码是否在您想要使用的代码之上?如果没有,请张贴所需的代码,以便我们可以看看。
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:23:42 | 显示全部楼层
您好,
 
在一些帮助下,我找到了RTOS的解决方案。
 
但它在前面加了一个+符号,所以用户必须找到并替换“+-”到“-”。
精度应为0.00。
 
谢谢。
 
 
(defun AddNumAtt(添加标签/e ei et txt)
`
(setq e(entnext)
标记(strcase tag))
(while(setq e(entnext e))
(setq ei(entget e)
et(cdr(assoc 0 ei)))
(和(=“ATTRIB”et)
(wcmatch(cdr(assoc 2 ei))标记)
(setq txt(cdr(assoc 1 ei)))
(numberp(setq num(read txt)))
(entmod)
(subst(cons 1(strcat“+”(rtos(+add num)2)))(assoc 1 ei)ei)
(entupd e)))
(普林斯)
(警告“ğizimdeki tüm attributeler değiştirilecek!!!”)
(setq addreal(getreal“\nEklenecek sayıyıgirizing:”)
(if(=addreal nil)(setq addreal-6))
(AddNumAtt addreal“*”)
;(AddNumAtt 1.00“*”)
(提醒“find penceresi açldığnda”+-“leri arattırın ve”-“ile değiştirtin!!!”)
(命令“find”);
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 02:53 , Processed in 0.430989 second(s), 66 queries .

© 2020-2025 乐筑天下

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