yoyoho
发表于 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"
1291500406
发表于 2019-4-6 18:35:42
yoyoho 发表于 2019-4-6 17:07
指令: BB
必强提示:选择文字:
选择文字:8X12
我的cad'是2007和2017两个都没错误,错在哪里我也不知道了
李钊伟2012
发表于 2019-4-6 21:34:51
$(eval,str)
将一个字符串传给DIESEL计算器,并返回计算结果
有大佬知道怎么用吗?例如我输入2&23得到46,
zixuan203344
发表于 2019-4-8 09:20:26
点我头像,看我发帖历史
137407536
发表于 2019-4-9 14:17:59
受教学习了
1291500406
发表于 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-3258+85 加法減法均不支持,无法完成计算,加油鴨
1291500406
发表于 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))
satan421
发表于 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功能
satan421
发表于 2019-4-10 14:09:22
本帖最后由 satan421 于 2019-4-12 11:39 编辑
;;逻辑上有点问题
;;修改了一下:
天各一方
发表于 2024-5-19 08:56:37
yuping913 发表于 2019-4-4 08:16
必强提示:选择文字:
选择文字:12X32参数类型错误: streamp nil
命令:
注释掉原语句;(set-clip-string GL-result) ;向系统剪贴板写入文字和;(GL:update),结果输出就相对顺畅了。主要是引用了计算器,计算器原代码被注释掉不可用导致的问题。