cad线段总和lisp_CAD中数字求和
加入化海川流化工人平臺,對接專業人技術圈
您需要 登錄 才可以下載或查看,沒有帳號?注冊
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)
)
總結
以上是生活随笔為你收集整理的cad线段总和lisp_CAD中数字求和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KST-51单片机:c语言编程实现数码管
- 下一篇: 变频器LED显示灯闪烁_雷克萨斯LX57