cad怎麼通過lisp語言對帶文字的數字統計求和

時間 2021-06-11 15:21:00

1樓:朱正偉

有中文的lisp不能夠求和,因為lisp語言不能夠識別中文。所以沒有辦法。

2樓:匿名使用者

通過對字串的處理,最終可以解決你的問題。

3樓:匿名使用者

把你的測試圖發一份到[email protected],也許能解決。

cad中怎麼對帶單位的數字(多行文字)進行求和:比如110m,95m,132m.

4樓:

可以編制一個autolisp程式,拾取文字,並將文字串去掉單位後轉為數字,相加後再將其和轉回字串,合併單位m字元,即可繪製和的文字。

求,cad數字文字分類求和外掛 20

5樓:朱正偉

要分類求和的話,需要對文字內容分析。這個需要提供dwg檔案,並指定動作要求,定製lisp程式,還要測試。這個不是幾句話就能夠解決的。

6樓:

浩辰cad裡有這樣的工具

求cad lisp查詢文字後,定位並統計數量 10

7樓:匿名使用者

不是我小氣,就你這點分,有誰會花那麼多時間給你去寫這麼繁複的lisp?現在的社會,時間就是金錢的啊!

8樓:又一個蝦腐

寫是不難,可是沒時間。畢竟還要花腦子去想。

如何在cad讓選取的數字相加,是通過什麼外掛執行的,還是什麼軟體啊?還是cad自帶功能啊?

9樓:匿名使用者

autocad主要功能是繪製圖紙,要把數字文字加起來的話,使用小外掛就可以辦到。

**如下:

(defun c:tes ( / #t1 #t2 &k1 &kw1)

(if (setq &kw1 (ssget '((0 . "text,mtext") (1 . "~*[~+-.0-9]*" ))) );只是選擇數字的文字

(progn

(setq #t1 0)

(while (setq &k1 (ssname &kw1 0))

(setq &kw1 (ssdel &k1 &kw1))

(if (setq #t2 (atof (cdr (assoc 1 (entget &k1))))) (setq #t1 (+ #t1 #t2)) )

)(princ "\n數字和是:")

(princ #t1);命令列顯示))

(princ)

);複製到記事本,以【.lsp】為字尾命名,開啟cad,autolisp載入,命令【tes】

如何統計一張cad圖紙中相同文字的數量

10樓:朱正偉

有兩個方法,

選擇圖形,右鍵,快速選擇,文字,輸入文字內容,就會把相同的文字全部找出來了。

使用autolisp查詢相同的文字。得到文字後,右鍵,屬性,裡面看文字數量即可。(高版本的autocad裡面有快捷面板,可以直接看數量)

(defun c:tt2 ( / #kw #k2 )

(if (null vlax-dump-object) (vl-load-com) )

(initget "t") (setq #kw (entsel "\n請選擇文字或輸入文字(t)[輸入文字(t)]: 《選擇文字》 "))

(cond

((= (type #kw) 'list)

(if (= (vla-get-objectname (setq #kw (vlax-ename->vla-object (car #kw)))) "acdbtext")

(setq #kw (vla-get-textstring #kw))

(progn

(setq #kw nil) (princ "\n錯誤的物件,請選擇單行文字物件!")))

)((member #kw (list "t" "t"))

(if (= (setq #kw (getstring "\n請輸入要選取的文字: ")) "")

(progn

(setq #kw nil) (princ "\n未輸入文字,程式退出!")))

))(if #kw (princ (strcat "\n框選包含文字 < " #kw " >的物件")) )

(if (and #kw (setq #kw (ssget (list (cons 0 "text") (cons 1 #kw)))))

(progn

(initget "v c s e") (setq #k2 (getkword "\n選擇文字或[移動(v)/複製(c)/刪除(e)]: 《選擇(s)> "))

(if (null #k2)

(sssetfirst nil #kw)

(cond

((member #k2 (list "v" "v")) (command "_.move" #kw "" pause) )

((member #k2 (list "c" "c")) (command "_.copy" #kw "" pause) )

((member #k2 (list "e" "e")) (command "_.erase" #kw "") )

((member #k2 (list "s" "s")) (sssetfirst nil #kw) )))

)(princ "\n未定義文字或未選擇物件!")

)(prin1)

)(prompt "\n《tt2》框選文字")

(prin1)

cad如何把所有數字加起來

11樓:朱正偉

autocad主要功能是繪製圖紙,要把數字文字加起來的話,使用小外掛就可以辦到。

**如下:

(defun c:tes ( / #t1 #t2 &k1 &kw1)

(if (setq &kw1 (ssget '((0 . "text,mtext") (1 . "~*[~+-.0-9]*" ))) );只是選擇數字的文字

(progn

(setq #t1 0)

(while (setq &k1 (ssname &kw1 0))

(setq &kw1 (ssdel &k1 &kw1))

(if (setq #t2 (atof (cdr (assoc 1 (entget &k1))))) (setq #t1 (+ #t1 #t2)) )

)(princ "\n數字和是:")

(princ #t1);命令列顯示))

(princ)

);複製到記事本,以【.lsp】為字尾命名,開啟cad,autolisp載入,命令【tes】

12樓:

常青藤外掛裡有一個選項是“數值合計計算”,可以把選中的單行文字的數值加起來。比較方便。

13樓:匿名使用者

這種情況你應當將你的各個商鋪建立面域,然後使用area命令

具體步驟:area 依次輸入a+空格——o+空格,滑鼠點選,命令提示來就會顯示出結果

14樓:掌千凡

1、如果是稍新的版本,支援**功能,把面積輸入**(或直接在**裡採用插入欄位的方式把各個物件面積引用到**中),然後就可以求和了,跟excel差不多;

2、如果你已經把面積以文字的形式輸入到圖形中,我倒是以前編了個求和的程式,可以對任意個選中的數字物件求和或求積,不過要求文字必須是單行文字且文字中不能帶其它字元。

如果需要的話就把郵箱給我吧。

15樓:匿名使用者

都是一比一畫的嗎?如果是的話。可以直接求面積。

lsp程式如何提取cad文字中的數字?

16樓:匿名使用者

提取到文字以後,判斷每個字是否屬於0 - 9 和點,不就可以將數字分離出來了嗎。

求大神幫我用lisp語言把這張圖表示出來!!!?圓圈裡要加上文字或者數字!! 15

17樓:匿名使用者

public static void main(string args)