求cad lisp.cad有很多数字,想同时做乘法,并且在原位置替换,第三点要求是能控制小数点后的位数.
最佳回答
最新回答共有2条回答
-
2026-04-04 21:15:42稳重的豆芽
回复(defun C:ZX48 ( / #k1 #l1 #l2 &k1 &kw1 n wznr1 wznr2) (setvar "cmdecho" 0) (setvar "blipmode" 0) (setq #L1 (getdist (strcat "\n请输入要相乘的数值:<" "1" ">"))) (if (= #L1 nil) (setq #L1 1) );默认相乘数值为1 (setq #L2 (getint (strcat "\n请输入要控制小数点后的位数:<" "5" ">")));默认小数点后5位 (while (and (/= #L2 nil) (< #L2 0)) (setq #L2 (getint (strcat "\n请输入要控制小数点后的位数:<" "5" ">"))));数值输入不得小于0 (if (= #L2 nil) (setq #L2 5) ) (princ "\n请选择数字文字") (setq &kw1 (ssget '((0 。 "text,mtext") (1 。 "~*[~-。0-9]*" ))));只选择数字文字 (if (/= &kw1 nil);如果有选择了 (progn (setq n (sslength &kw1)) (setq &k1 (ssname &kw1 0));提取文字 (while &k1 (setq &kw1 (ssdel &k1 &kw1)) (setq #k1 (entget &k1));取得文字属性列表 (setq WZNR1 (assoc 1 #k1));取得文字 (setq WZNR2 (cons 1 (rtos (* (atof (cdr WZNR1)) #L1) 2 #L2)));得到要替换的内容 (setq #k1 (subst WZNR2 WZNR1 #k1));替换内容 (entmod #k1);刷新文字 (setq &k1 (ssname &kw1 0));下一个文字 ) ) ) (princ "\n共选择了") (princ n) (princ "个文字相乘");在命令行显示 (prin1));复制到记事本以【。lsp】为后缀命名,加载到AutoCAD就可以使用,使用命令为【ZX48】
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
