明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: yuping913

[源码] 求一个取文本自动计算的LISP

[复制链接]
发表于 2019-4-6 17:07:55 | 显示全部楼层
指令: BB
必强提示:选择文字:
选择文字:8X12
表达式:8*12=96  >>>>计算结果:968*12=96
损坏的引数类型: streamp nil
指令:
指令:
BB 必强提示:选择文字:
选择文字:700X300
表达式:700*300=210000  >>>>计算结果:210000700*300=210000
损坏的引数类型: streamp nil
指令:
指令: BB1
必强提示:选择文字:
选择文字:700x300损坏的引数类型: streamp nil
指令:
指令:
BB1 必强提示:选择文字:
选择文字:8x12损坏的引数类型: streamp nil

AUTOCAD2012测试会出现     "损坏的引数类型: streamp nil"
回复

使用道具 举报

发表于 2019-4-6 18:35:42 | 显示全部楼层
yoyoho 发表于 2019-4-6 17:07
指令: BB
必强提示:选择文字:
选择文字:8X12

我的cad'是2007和2017两个都没错误,错在哪里我也不知道了
回复

使用道具 举报

发表于 2019-4-6 21:34:51 | 显示全部楼层
$(eval,str)
将一个字符串传给DIESEL计算器,并返回计算结果
有大佬知道怎么用吗?例如我输入2&23得到46,
回复

使用道具 举报

发表于 2019-4-8 09:20:26 | 显示全部楼层
点我头像,看我发帖历史
回复

使用道具 举报

发表于 2019-4-9 14:17:59 | 显示全部楼层
受教学习了
回复

使用道具 举报

发表于 2019-4-9 23:44:19 | 显示全部楼层
本帖最后由 1291500406 于 2019-4-9 23:45 编辑
satan421 发表于 2019-4-9 16:58
;;试一下
(defun c:test ( / text_ss text_num i1 i2 count1 temp result text)
  (princ"\n请选择文本[ ...

值得鼓勵,但是只能計算,50*50     30x50   50X50  兩位數字相乘的結果  ,  不能算50*50*50  計算結果有誤,結果2500 錯了
50-32  58+85    加法減法均不支持,无法完成计算,加油鴨
回复

使用道具 举报

发表于 2019-4-10 00:45:04 | 显示全部楼层
本帖最后由 1291500406 于 2019-4-10 09:20 编辑

;;试试这个
(defun c:bb ( / bb1 bb2 bb3 i)(setq bb1 (cdr (assoc '1 (entget (car  (entsel "\必强提示:选择表达式计算>>:"))))))
(setq i 1)(setq bb3 "")(repeat (strlen bb1)(cond  ((= (substr bb1 i 1) " ")   (setq bb2 ","))((= (substr bb1 i 1) "x")  (setq bb2 "*"))
((= (substr bb1 i 1) "X")  (setq bb2 "*"))(t (setq bb2 (substr bb1 i 1))))(setq bb3 (strcat bb3 bb2))(setq i (+ i 1
)))(command "cal" bb3)(princ))


;;
输入表达式计算
(defun c:bb ()(command "cal" (getstring"\n输入表达式计算:"))(princ))

回复

使用道具 举报

发表于 2019-4-10 09:13:16 | 显示全部楼层
本帖最后由 satan421 于 2019-4-10 11:03 编辑

使用cal是个不错的方法
附上一点关于cal的内容:

1.Acad随机附带了一些外部定义命令,其中cal(计算器)命令是最常用的命令之一,在加载geomcal.arx后cal可以在Lisp程序中像其它函数一样使用,这就使得我们在程序中对文本的四则运算处理变得简单,如“(cal "1+2/3")”,其中字符串"1+2/3"可以从图形的文本中提取,也可以是符合cal要求格式的任一字符串。

2.需要注意的是,在低版本的Acad中geomcal.arx只能加载一次,重复加载将使Acad意外退出(无提示)。
ps:高版本cad无geomcal.arx,猜测可能是在geomcal.crx中定义了cal功能


评分

参与人数 1明经币 +1 收起 理由
1291500406 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2019-4-10 14:09:22 | 显示全部楼层
本帖最后由 satan421 于 2019-4-12 11:39 编辑

;;逻辑上有点问题
;;修改了一下:




本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2024-5-19 08:56:37 | 显示全部楼层
yuping913 发表于 2019-4-4 08:16
必强提示:选择文字:
选择文字:12X32参数类型错误: streamp nil
命令:

注释掉原语句;(set-clip-string GL-result) ;向系统剪贴板写入文字和;(GL:update),结果输出就相对顺畅了。主要是引用了计算器,计算器原代码被注释掉不可用导致的问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 17:41 , Processed in 0.170436 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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