乐筑天下

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

[编程交流] 需要帮助修改L

[复制链接]

18

主题

44

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 13:18:35 | 显示全部楼层 |阅读模式
我无意中修改了这个lisp代码。此lisp代码将值的最终总和乘以固定值“0.9”。但是我需要在这个lisp代码中做一个更改,代码应该从命令提示符中获取用户输入值。这意味着乘法因子是一个可变值。请帮忙。高级谢谢。
 
(定义C:9FS(/cpent elist en ip newtext pt ss sum sumtxt)
(原理“\n\t\t>>选择文本以获取摘要>>>”)
(如果
;;在屏幕上选择文字/多行文字:
(setq ss(ssget’((0。“*TEXT”)))
;; 如果选中,则:
(程序
;; 存储第一个文本实体,以便进一步使用:
(setq cpent(ssname ss 0))
;; 将初始和设置为零:
(setq和0。)
;; 通过选定文本/多文本循环:
(虽然
;; 获取所选内容中的第一个文本:
(setq en(ssname ss 0))
;; 获取它们的实体列表:
(setq elist(entget en))
;; 从实体列表中按键1获取文本字符串:
(setq txt(cdr(assoc 1 elist)))
;; 创建输出字符串:
(setq sumtxt
;; 连接字符串:
(strcat)
;; 将数字转换为字符串:
(实时操作系统
;; 将文字的数字值相加:
(setq sum(+0.9(atof txt))sum)
;; 2表示公制单位(3表示工程):
2.
;; 通过电流设置精度:
(getvar“dimdec”))
)
;; 从选择集中删除实体:
(ssdel en ss)
)
;; 在命令行中显示消息:
(princ(strcat“\nSumm=“sumtxt”)
(setq pt(getpoint“\n指定新文本位置:”)
;; 获取存储实体的插入点:
(setq ip(cdr(assoc 10(entget cpent)))
;; 将文本实体复制到新的目标点:
(命令“\u copy“cpent”“”\u non“ip”\u non“pt)
;; 获取上次创建的实体:
(setq newtxt(entlast))
;; 获取它们的实体列表:
(setq elist(entget newtext))
;; 使用新文本字符串修改实体列表:
(entmod(subst(cons 1 sumtxt)(assoc 1 elist)elist)
;; 更新更改:
(entupd NewText)
)
)
(普林斯)
)
(princ“\n带STX的START命令…”)
(普林斯)
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 13:43:14 | 显示全部楼层
 
添加红线和变量(代码顶部)更改代码以匹配绿线(将mf替换为0.9)
回复

使用道具 举报

18

主题

44

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 14:00:51 | 显示全部楼层
先生,非常感谢您的及时回复,这将使我感到高兴。
但代码中存在一个小问题,如果它在数字之前有字母,那么它就不能工作。你能帮帮我吗。
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 14:34:26 | 显示全部楼层
 
如果这只发生在多行文字上,那么它们很可能是多行文字格式的字符串。除此之外,请以Autocad 2010格式发布带有问题文本/多行文字的图形,或给出您获得的字符串示例。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 00:47 , Processed in 3.088707 second(s), 60 queries .

© 2020-2025 乐筑天下

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