cad线段总和lisp_CAD中数字求和

本文提供了一段LISP小程序,用于在CAD环境中实现数字的加法和乘法运算。用户只需加载程序并选择相应的命令,然后选择CAD图纸中的数字,程序将自动计算并显示结果。
摘要由CSDN通过智能技术生成

加入化海川流化工人平台,对接专业人技术圈

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

x

本人从网上找的绝对好用的cad中数字求和的lisp小程序

使用方法:把以下程序复制,打开cad 在cad中保存为add.lisp文件,把add.lisp程序复制到cad安装程序文件夹中的support文件中;打开cad选加载应用程序,找到add.lisp程序选加载,点启动,选add.lisp即可。命令行输入add回车,选择数字,回车,ok!乘法输mul命令,绝对好用。具体方法如图:

(SETVAR "TEXTSIZE" 3.0)

;add.lsp

;本程序用处是 进行加法运算(addition)

;用法:

;   装载后 键入 add , 选择所要计算的数据,

;   然后 回车 即可在command之下输出结果.

;

(DEFUN C:ADD()

(princ "\nAddition,Version3.0,(C)1997-2000 by Huang Zenghong. Email: zhhuang@public.cc.jl.cn")

;保存原系统变量和出错处理函数

(setq oldech (getvar "CMDECHO")

olderr *ERROR*)

(setvar "CMDECHO" 0)

;定义新的出错处理函数

(defun *ERROR* (msg)

(princ "\n") (princ msg)

(setvar "CMDECHO" oldech)

(setq *ERROR* olderr)

)

(SETQ

ADDIT NIL SS NIL EN NIL ED NIL AS NIL

A_TXT NIL NEW_TXT NIL POT NIL

)

(SETQ A_TXT 0)

(PROMPT "\n选择您要进行加法运算的数据 : ")

(SETQ SS (SSGET))

(WHILE (> (SSLENGTH SS) 0)

(SETQ EN (SSNAME SS 0))

(SETQ ED (ENTGET EN))

(SETQ AS (CDR (ASSOC '0 ED)))

(IF (= AS "TEXT") (_TXT))

(IF (= AS "MTEXT") (_TXT))

(SSDEL EN SS)

)

(SETQ

ADDIT NIL SS NIL EN NIL ED NIL AS NIL

A_TXT NIL NEW_TXT NIL POT NIL

)

(PROMPT (STRCAT "\n加法运算之和: " NEW_TEXT))

(PRINC)

(SETQ POT (GETPOINT "\n请问您要将计算结果放在何处?:"))

(IF (NOT (= POT NIL))

(TEXT_YES)

)

;恢复原系统变量和出错处理函数

(setvar "CMDECHO" oldech)

(setq *ERROR* olderr)

(princ)

)

;加法

(DEFUN _TXT ()

(SETQ A_TXT (+ (ATOF (CDR (ASSOC '1 ED))) A_TXT))

(SETQ NEW_TEXT (RTOS A_TXT 2 3))

(SSDEL EN SS)

)

;mul.lsp

;本程序用处是 进行乘法运算(multiplication)

;用法:

;   装载后 键入 mul , 选择所要计算的数据,

;   然后 回车 即可在command之下输出结果.

;

(DEFUN C:mul()

(princ "\nMultiplication,Version3.0,(C)1997-2000 by Huang Zenghong. Email: zhhuang@public.cc.jl.cn")

;保存原系统变量和出错处理函数

(setq oldech (getvar "CMDECHO")

olderr *ERROR*)

(setvar "CMDECHO" 0)

;定义新的出错处理函数

(defun *ERROR* (msg)

(princ "\n") (princ msg)

(setvar "CMDECHO" oldech)

(setq *ERROR* olderr)

)

(SETQ

ADDIT NIL SS NIL EN NIL ED NIL AS NIL

B_TXT NIL NEW_TXT NIL POT NIL

)

(SETQ B_TXT 1.0)

(PROMPT "\n选择您要进行乘法运算的数据: ")

(SETQ SS (SSGET))

(WHILE (> (SSLENGTH SS) 0)

(SETQ EN (SSNAME SS 0))

(SETQ ED (ENTGET EN))

(SETQ AS (CDR (ASSOC '0 ED)))

(IF (= AS "TEXT") (_TXTM))

(IF (= AS "MTEXT") (_TXTM))

(SSDEL EN SS)

)

(SETQ

ADDIT NIL SS NIL EN NIL ED NIL AS NIL

B_TXT NIL NEW_TXT NIL POT NIL

)

(PROMPT (STRCAT "\n乘法运算之积: " NEW_TEXT))

(PRINC)

(SETQ POT (GETPOINT "\n请问您要将计算结果放在何处?:"))

(IF (NOT (= POT NIL))

(TEXT_YES)

)

;恢复原系统变量和出错处理函数

(setvar "CMDECHO" oldech)

(setq *ERROR* olderr)

(princ)

)

;乘法

(DEFUN _TXTM ()

(SETQ B_TXT (* (ATOF (CDR (ASSOC '1 ED))) B_TXT))

(SETQ NEW_TEXT (RTOS B_TXT 2 3))

(SSDEL EN SS)

)

;去除空格

(DEFUN KOC()

(SETQ C3 NEW_TEXT)

(SETQ PT1 (STRLEN C3))

(SETQ PT2 (SUBSTR C3 PT1 1))

(WHILE (= "0" PT2)

(SETQ PT1 (- PT1 1))

(SETQ PT2 (SUBSTR C3 PT1 1))

)

(WHILE (= "." PT2)

(SETQ PT1 (- PT1 1))

(SETQ PT2 (SUBSTR C3 PT1 1))

)

(SETQ KC (SUBSTR C3 1 PT1))

(SETQ C3 KC)

)

;写数据

(DEFUN TEXT_YES()

(KOC)

(COMMAND "TEXT" POT "" 0  C3)

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值