注册 登录
明经CAD社区 返回首页

xiaomm250的个人空间 http://www.mjtd.com/?419266 [收藏] [复制] [分享] [RSS]

日志

ks字符串表达式计算求值.lsp

热度 1已有 46 次阅读2018-7-2 13:37 |系统分类:应用

(vl-load-com)
;来源
;http://bbs.mjtd.com/forum.php?mod=viewthread&tid=107935&highlight=cal%2B%BC%C6%CB%E3
;计算数学表达式,返回实数
;这个无法在64bit的CAD上使用,为什么?
(defun MyCal (express / STR wscript)  
  (setq str (strcat "dim ret \n ret=" express))
  (setq wscript (vlax-create-object "ScriptControl"))
  (vlax-put wscript 'language "vbs")
  (vlax-invoke-method wscript 'ExecuteStatement str)
  (vlax-invoke-method wscript 'eval "ret")
)
;主要函数,计算表达式,"1+2*3" 返回 "1+2*3=7"
(defun c:ks( / I NEWTXT NUM SS SSDATA TXT )
  (setvar "DIMZIN" 0)
  (if(setq ss (ssget(list
                      (cons 0 "*TEXT")
                      (cons 1 "*#*")
                      (cons -4 "<NOT")
                        (cons 1 "*[a-zA-Z=]*");不包含任何字母与等号
                      (cons -4 "NOT>")
                    )))
    (progn
      (setq i -1)
      (repeat(sslength ss)
        (setq ssdata (entget(ssname ss (setq i (1+ i)))))
        (setq txt (cdr(assoc 1 ssdata)))
        (if(setq num (MyCal txt))
          (progn
            (setq newtxt (strcat txt "=" (rtos num 2 3)))
            (entmod(subst(cons 1 newtxt)(cons 1 txt)ssdata))
          )
        )
      )
    )
  )
  (princ)(prin1)
)


路过

雷人
1

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

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

GMT+8, 2018-7-16 03:02 , Processed in 0.255824 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

返回顶部