[已解決]求~~文字數字加總計算的lsp?
+32
urania0401
sireny238
Tina Yen
zxc2525123
linxyz168
winnie
Yulunwei
yuting120
monkeyx2
白金之星
阿之
ltea57055
pc200098
jess198109
cheyuan1983
regina
tooth525
阿強
惡魔紫
wwsh3
YU HSIANG
YLCHEN
ysl yang
Tiger&蘋果爸
tarpon
王小美
NaNa
bruce79
lsj
霖
ginse0727
iccs
36 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共2頁)
[已解決]求~~文字數字加總計算的lsp?
小弟是從事水電工程繪圖的~一直有管料統計的困擾,請問大家,是否有文字數字加總計算的lsp呢? 簡述如下圖:
是否有那種當我框選文字(文字內容為數字時),lsp能自動幫我加總總和(300+2580+87148+65550=?)的程式呢? 感謝大家~
是否有那種當我框選文字(文字內容為數字時),lsp能自動幫我加總總和(300+2580+87148+65550=?)的程式呢? 感謝大家~
iccs 在 2010-09-06, 19:22 作了第 1 次修改
iccs- 初級會員
- 文章總數 : 50
年齡 : 43
來自 : 高雄
職業 : 消防設計
愛好 : 電腦、電影、上網
個性 : 龜毛
使用年資 : 10年
使用版本 : AutoCAD 2016
積分 : 1
經驗值 : 5874
威望值 : 21
注冊日期 : 2009-04-28
stevelin likes this post
回復: [已解決]求~~文字數字加總計算的lsp?
這個程式不算難啦,應該很多人都會寫,所以用不著跪求啦!!
有空閒所以就幫你個小忙囉.
執行的畫面統計圖示:
本程式僅能適用統計數字(文字內容為數字),若文字內容同時包含非數字值時,統計值可能會出現錯誤.提供給你參考.
有空閒所以就幫你個小忙囉.
執行的畫面統計圖示:
本程式僅能適用統計數字(文字內容為數字),若文字內容同時包含非數字值時,統計值可能會出現錯誤.提供給你參考.
- 代碼:
(defun c:sumtxt()
(setvar "cmdecho" 0) ;關閉LISP在指令區的操綽回應
(setq oldlay (getvar "clayer")) ;取出舊圖層設定值
(setq oldos (getvar "osmode")) ;取出舊物件鎖點設定值
(setvar "osmode" 0) ;關閉物件鎖點*避免物件鎖點干擾
(setq gum 1)
(prompt "\n框選統計數值:")
(setq ds (ssget '((0 . "*text"))))
(setq n (sslength ds)
i 0
j 0
numlist '()
sum 0
)
(repeat n
(setq en (ssname ds i))
(setq endata (entget en))
(setq num (cdr(assoc gum endata)))
(setq numlist (cons num numlist))
(setq i (1+ i))
)
(repeat (length numlist)
(setq num1 (atof (nth j numlist)))
(setq sum (+ num1 sum))
(setq j (1+ j))
)
(princ "\n選取數值總合為:")
(princ sum)
(alert (strcat "選取數值總合=" (rtos sum 2 2)))
(setvar "cmdecho" 1)
(setvar "clayer" oldlay)
(setvar "osmode" oldos)
(princ)
)
- 附件
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6828
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
Tiger&蘋果爸, christicking, yf079009026 and abc82703 like this post
回復: [已解決]求~~文字數字加總計算的lsp?
LISP太久沒碰了~剛用了VB.NET寫了一個
VB.NET有個字串轉成數值的函數是Val( )
直接將字串帶入函數內,就可轉成數字,不過若帶入非數字資料,會得到0
VB.NET有個字串轉成數值的函數是Val( )
直接將字串帶入函數內,就可轉成數字,不過若帶入非數字資料,會得到0
- 代碼:
<CommandMethod("Count")> Public Sub CreateCount()
Dim optSel As New PromptSelectionOptions()
optSel.MessageForAdding = "選取要計算的物件"
Dim resSel As PromptSelectionResult = ed.GetSelection(optSel)
If resSel.Status = PromptStatus.OK Then
Dim sSet As SelectionSet = resSel.Value
Dim ids As ObjectId() = sSet.GetObjectIds()
Dim Count As Integer = 0
Using trans As Transaction = db.TransactionManager.StartTransaction()
For Each sSetEntId As ObjectId In ids
Dim ent As Entity = trans.GetObject(sSetEntId, OpenMode.ForRead)
Dim Name As String = ent.GetType().Name
If Name = "DBText" Then
Dim Type As DBText = trans.GetObject(sSetEntId, OpenMode.ForRead)
Dim Vaule As Double = Val(Type.TextString)
Count = Count + Vaule
End If
Next
trans.Commit()
End Using
ed.WriteMessage(vbCrLf & "數值總和為:" & Count)
End If
End Sub
____________________________________________________________________________________
在Facebook開了一個"用VB.NET來開發AutoCAD的應用程式"的社團
https://www.facebook.com/?ref=logo#!/group.php?gid=145185532180088
歡迎有的要學VB.NET的加入一起討論喔
christicking and hongren24 like this post
回復: [已解決]求~~文字數字加總計算的lsp?
用了二次REPEAT,建議可以再精簡ginse0727 寫到:這個程式不算難啦,應該很多人都會寫,所以用不著跪求啦!!
有空閒所以就幫你個小忙囉.
不用擔心非數字開頭的文字
lsj- 初級會員
- 文章總數 : 43
年齡 : 59
來自 : 桃園
職業 : 營建工程
愛好 : 閒
個性 : 懶
使用年資 : 10↑
使用版本 : 2008
積分 : 2
經驗值 : 5505
威望值 : 110
注冊日期 : 2010-06-28
回復: [已解決]求~~文字數字加總計算的lsp?
非常感謝ginse0727與霖 二位先進的幫忙~小弟在此先拜謝了^^
iccs- 初級會員
- 文章總數 : 50
年齡 : 43
來自 : 高雄
職業 : 消防設計
愛好 : 電腦、電影、上網
個性 : 龜毛
使用年資 : 10年
使用版本 : AutoCAD 2016
積分 : 1
經驗值 : 5874
威望值 : 21
注冊日期 : 2009-04-28
回復: [已解決]求~~文字數字加總計算的lsp?
非常感謝大大的分享!!!!
bruce79- 初級會員
- 文章總數 : 186
年齡 : 45
來自 : 南投
職業 : 工程師
愛好 : 運動
個性 : O型-樂觀
使用年資 : 5年
使用版本 : 2008
積分 : 3
經驗值 : 6517
威望值 : 117
未回應主題 : 1
注冊日期 : 2008-09-12
回復: [已解決]跪求~~文字數字加總計算的lsp?
您好,我也正在為數字加總的問題煩惱
但我不懂lsp如何在CAD上運用
可以告訴我嗎?感激不盡
但我不懂lsp如何在CAD上運用
可以告訴我嗎?感激不盡
NaNa- 初級會員
- 文章總數 : 50
年齡 : 56
來自 : 台南市
職業 : 行政助理、品管
愛好 : 看推理小說、玩
個性 : 善良、遲鈍
使用年資 : 5年
使用版本 : 2013
積分 : 3
經驗值 : 5653
威望值 : 36
注冊日期 : 2009-12-06
回復: [已解決]求~~文字數字加總計算的lsp?
這個問題也困擾著我,非常感謝ginse0727與霖 二位的分享.
王小美- 一般會員
- 文章總數 : 28
年齡 : 48
來自 : 台灣高雄
職業 : 鋼構製圖
愛好 : 玩線上遊戲
個性 : 開朗大方吧
使用年資 : 9年
使用版本 : 2004
經驗值 : 5532
威望值 : 6
注冊日期 : 2010-01-08
回復: [已解決]求~~文字數字加總計算的lsp?
NaNa 寫到:您好,我也正在為數字加總的問題煩惱
但我不懂lsp如何在CAD上運用
可以告訴我嗎?感激不盡
工具>>載入應用程式>>選擇您要載入的程式所在資料夾及程式>>載入
執行時在命令列輸入應用程式設定的命令即可以上例即sumtxt
也可在命令列輸入(load "sumtxt") 載入[但sumtxt.lsp程式要放在支援檔案路徑資料夾內]
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6251
威望值 : 263
注冊日期 : 2010-07-01
回復: [已解決]求~~文字數字加總計算的lsp?
補充:另外可以使用以下方式(適用2006以上版本)tarpon 寫到:工具>>載入應用程式>>選擇您要載入的程式所在資料夾及程式>>載入NaNa 寫到:您好,我也正在為數字加總的問題煩惱
但我不懂lsp如何在CAD上運用
可以告訴我嗎?感激不盡
執行時在命令列輸入應用程式設定的命令即可以上例即sumtxt
也可在命令列輸入(load "sumtxt") 載入[但sumtxt.lsp程式要放在支援檔案路徑資料夾內]
這樣可以不用放在AutoCAD支援檔案路徑資料夾內
PS:建議自行新增資料夾存放,方便日後管理~
[教學]載入LISP應用程式 APPLOAD指令
https://www.autocad-tw.com/t111-topic
[影片]自訂CUI 載入LISP
https://www.autocad-tw.com/t3999-topic
Tiger&蘋果爸 在 2022-08-11, 10:49 作了第 1 次修改
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跪求~~文字數字加總計算的lsp?
非常感謝tarpon和蘋果爸
原來我是指令輸入錯誤,一直以為是輸入存檔時的檔名
所以沒辦法使用。有了各位的幫忙我終於可以交差了
感恩
原來我是指令輸入錯誤,一直以為是輸入存檔時的檔名
所以沒辦法使用。有了各位的幫忙我終於可以交差了
感恩
NaNa- 初級會員
- 文章總數 : 50
年齡 : 56
來自 : 台南市
職業 : 行政助理、品管
愛好 : 看推理小說、玩
個性 : 善良、遲鈍
使用年資 : 5年
使用版本 : 2013
積分 : 3
經驗值 : 5653
威望值 : 36
注冊日期 : 2009-12-06
回復: [已解決]求~~文字數字加總計算的lsp?
文字數字加總計算的lsp滿好用的,
三不五時來逛總可挖到寶~
謝謝蘋果爸
三不五時來逛總可挖到寶~
謝謝蘋果爸
ysl yang- 初級會員
- 文章總數 : 118
年齡 : 56
來自 : 台北市
職業 : 繪圖員
愛好 : 逛大賣場
個性 : 隨和中等
使用年資 : 10年以上
使用版本 : 2010剛用
積分 : 1
經驗值 : 5644
威望值 : 123
注冊日期 : 2010-11-02
回復: [已解決]求~~文字數字加總計算的lsp?
蘋果爸人真好,都會幫助大家解決問題。
我是利用CAD內含的資料萃取指令_dataextraction,也挺方便的,除了可加總還可以做很多事,有興趣旳人可以去玩玩看
我是利用CAD內含的資料萃取指令_dataextraction,也挺方便的,除了可加總還可以做很多事,有興趣旳人可以去玩玩看
YLCHEN- 一般會員
- 文章總數 : 52
年齡 : 54
來自 : 台灣台北
職業 : 電腦繪圖
經驗值 : 5880
威望值 : 3
注冊日期 : 2008-10-30
感謝提供實用的lsp!!
非常感謝ginse0727,霖跟蘋果爸的教導!
一進這個版面就挖到寶藏!
再次謝謝三位無私的貢獻!
也感謝版主的提問~讓大家都能有收獲!
一進這個版面就挖到寶藏!
再次謝謝三位無私的貢獻!
也感謝版主的提問~讓大家都能有收獲!
YU HSIANG- 初級會員
- 文章總數 : 140
年齡 : 46
來自 : 新北市
職業 : 繪圖
愛好 : 上網
個性 : 靜
使用年資 : 12
使用版本 : AUTO CAD 2010
積分 : 9
經驗值 : 5656
威望值 : 195
注冊日期 : 2011-05-05
[已解決]跪求~~文字數字加總計算的lsp?
謝謝分享,這個程式應用於圖面數量計算後之統計幫了小弟很大的忙,感謝
wwsh3- 初級會員
- 文章總數 : 62
年齡 : 56
來自 : 彰化
職業 : 建築施工
愛好 : 逛論壇
個性 : 內向
使用年資 : 15YEAR
使用版本 : 2010
積分 : 1
經驗值 : 5341
威望值 : 51
注冊日期 : 2011-01-26
回復: [已解決]求~~文字數字加總計算的lsp?
感謝分享
之前一直用計算機算
現在終於可以直接在CAD上算
之前一直用計算機算
現在終於可以直接在CAD上算
惡魔紫- 初級會員
- 文章總數 : 30
年齡 : 47
來自 : 台中
職業 : 機械製圖
愛好 : 游泳.線上遊戲
個性 : 愛玩
使用年資 : 5
使用版本 : 2012
積分 : 1
經驗值 : 4959
威望值 : 24
注冊日期 : 2011-08-19
回復: [已解決]求~~文字數字加總計算的lsp?
剛好有需要~謝謝大大分享~
阿強- 一般會員
- 文章總數 : 9
年齡 : 47
來自 : 台北
職業 : 服務
愛好 : 上網
個性 : 沉默
經驗值 : 5604
威望值 : 9
注冊日期 : 2009-08-13
[分享]文字計算程式更新
依lsj前輩的建議內容,再將程式內容精簡,
另外新增計算單位設定,及計算完的結果,可以回貼所選的文字裡.
另外新增計算單位設定,及計算完的結果,可以回貼所選的文字裡.
- 代碼:
;文字數值計算加總
(defun c:tea(/ i num sum);/ en ds i endata num sum #dd)
(prompt "\n框選統計數值:")
(setq ds (ssget '((0 . "*text"))))
(setq #dd(getint "\n小數位數<0>:"))
(if (null #dd) (setq #dd 0))
(setq i 0 sum 0 numlist '())
(repeat (sslength ds)
(setq en (ssname ds i))
(setq endata (entget en))
(setq num (cdr(assoc 1 endata)))
(setq sum (+ (atof num) sum))
(setq i (1+ i))
)
(returntea sum #dd)
(prin1)
)
;回填計算值至文字中
(defun returntea(#sum #dd)
(setq newval(cons 1 (rtos #sum 2 #dd)))
(setq en (entsel "\n選取總合貼附:")) ;;;選取欲貼上計算值的text
(if (null en)
(alert (strcat "選取數值總合=" (rtos #sum 2 #dd)))
(progn
(setq endata (entget (car en)))
(setq oldval (assoc 1 endata))
(setq endata (subst newval oldval endata))
(entmod endata)
)
)
)
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6828
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
Gray0504 and tch0903 like this post
回復: [已解決]求~~文字數字加總計算的lsp?
很高興高手雲集,那請問是否有"計算機"呢?請問新板
有嗎?我的2004沒有~以前我寫了單鍵"+"能計算
但不能先乘除後加減至少省去找計算機的麻煩...
有嗎?我的2004沒有~以前我寫了單鍵"+"能計算
但不能先乘除後加減至少省去找計算機的麻煩...
- 代碼:
(DEFUN C:+(/ wd da db no0 no1 non ns naa nab)
(setq wd (getstring "\nNo.>>: "))
(setq da nil db nil no0 1 naa nil non (strlen wd) ns 1 no1 0)
(if (= d1 nil) (setq d1 0))
(while (< no0 (+ non 2))
(setq naa (substr wd no0 1))
(if (or (= "+" naa) (= "-" naa) (= "*" naa) (= "/" naa)(= """" naa))
(progn
(if da
(progn
(setq db (atof (substr wd ns no1)))
(cond ((= "+" nab)
(setq d1 (+ da db))
)
((= "-" nab)
(setq d1 (- da db))
)
((= "*" nab)
(setq d1 (* da db))
)
((= "/" nab)
(setq d1 (/ da db))
)
) (setq da d1)
);progn yes da
(if (= no0 1) (setq da d1) (setq da (atof (substr wd ns no1))))
);if da
(setq no1 -1 ns (+ no0 1) nab naa)
);progn
);if
(setq no1 (+ no1 1) no0 (+ no0 1))
);while
(Grtext 22 (RTOS D1 2 6))
(COMMAND "OFFSET" (ABS D1) "");順便把OFFSET值也改了
(prompt "\ = ") (eval d1)
)
tooth525- 初級會員
- 文章總數 : 43
年齡 : 59
來自 : 彰化
職業 : CNC線切割
愛好 : 看影集,唱唱歌
個性 : 溫合/樂觀/善於分析
使用年資 : 30年
使用版本 : 2004
積分 : 2
經驗值 : 5178
威望值 : 149
注冊日期 : 2011-08-03
otisgogo likes this post
回復: [已解決]求~~文字數字加總計算的lsp?
請問若有符號與數量時該怎麼改呢
[img][/img]
[img][/img]
tooth525- 初級會員
- 文章總數 : 43
年齡 : 59
來自 : 彰化
職業 : CNC線切割
愛好 : 看影集,唱唱歌
個性 : 溫合/樂觀/善於分析
使用年資 : 30年
使用版本 : 2004
積分 : 2
經驗值 : 5178
威望值 : 149
注冊日期 : 2011-08-03
回復: [已解決]求~~文字數字加總計算的lsp?
tooth525 寫到:請問若有符號與數量時該怎麼改呢
[img][/img]
您的問題,我覺得應該是要從字串處理上著手,就我的功力而論,感覺處理上還算有些困難,
不好意思,因為現在家裡有小BABY,每天空閒的時間很有限,等比較有空時我會來研究一下,
當然論壇上的高手很多,說不定很快的就有前輩幫您解了,不過建議您新開一篇專欄來問,
看到問題的人才會比較多哦!
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6828
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [已解決]求~~文字數字加總計算的lsp?
改好了tooth525 寫到:請問若有符號與數量時該怎麼改呢
[img][/img]
- 代碼:
(DEFUN C:++()
(setq s1 (ssget) sslen (sslength s1) I (1- sslen) d1 0 d2 0)
(while (>= I 0)
(setq s2 (ssname s1 I)
ent (cdr (assoc 1 (entget s2)))
)
(progn
(setq wd ent)
(if (= "$" (substr wd 1 1))
(setq wd (substr wd 2))
)
(prompt " 取得: ")(princ wd)
(c+++)
(prompt "=")(princ d1)
(setq d2 (+ d1 d2))
(setq I (1- I))
);p
);w
(prompt " 合計= ")(princ d2)
(setq inspt (getpoint "\nESC結束或寫入點: "))
(command "text" inspt "0" (strcat "$" (rtos d2 2 0)))
(prin1)
)
(DEFUN C+++(/ da db no0 no1 non ns naa nab)
(setq da nil db nil no0 1 naa nil non (strlen wd) ns 1 no1 0)
(setq d1 (atof wd));add
(while (< no0 (+ non 2))
(setq naa (substr wd no0 1))
(if (or (= "+" naa) (= "-" naa) (= "*" naa) (= "X" naa) (= "x" naa) (= "/" naa)(= """" naa))
(progn
(if da
(progn
(setq db (atof (substr wd ns no1)))
(cond ((= "+" nab)
(setq d1 (+ da db))
)
((= "-" nab)
(setq d1 (- da db))
)
((= "X" nab)
(setq d1 (* da db))
)
((= "x" nab)
(setq d1 (* da db))
)
((= "*" nab)
(setq d1 (* da db))
)
((= "/" nab)
(setq d1 (/ da db))
)
)
(setq da d1)
);progn yes da
(if (= no0 1) (setq da d1) (setq da (atof (substr wd ns no1))))
);if da
(setq no1 -1 ns (+ no0 1) nab naa)
);progn
);if
(setq no1 (+ no1 1) no0 (+ no0 1))
);while
)
tooth525- 初級會員
- 文章總數 : 43
年齡 : 59
來自 : 彰化
職業 : CNC線切割
愛好 : 看影集,唱唱歌
個性 : 溫合/樂觀/善於分析
使用年資 : 30年
使用版本 : 2004
積分 : 2
經驗值 : 5178
威望值 : 149
注冊日期 : 2011-08-03
abc705220, hongren24 and pu0224 like this post
回復: [已解決]求~~文字數字加總計算的lsp?
非常實用的程式,可以節省不少工作時間 太感謝了
regina- 專屬會員
- 文章總數 : 62
年齡 : 48
來自 : 臺中市
職業 : 鋼筋施工圖
愛好 : 吸收新知
個性 : 內斂
使用年資 : 8年
使用版本 : 2013
經驗值 : 5709
威望值 : -2
注冊日期 : 2009-10-24
回復: [已解決]求~~文字數字加總計算的lsp?
正好需要數字加總的程式,非常謝謝分享!!
cheyuan1983- 一般會員
- 文章總數 : 19
年齡 : 41
來自 : Taipei
職業 : 工程師
愛好 : 爬山.攝影.旅遊
個性 : 隨和
使用年資 : 新手初學
使用版本 : 新手初學
積分 : 1
經驗值 : 4596
威望值 : 6
注冊日期 : 2012-07-14
回復: [已解決]求~~文字數字加總計算的lsp?
太方便了~無限感激
jess198109- 贊助會員
- 文章總數 : 46
年齡 : 43
來自 : 台中
職業 : 待業中
愛好 : 繪圖
個性 : 內斂
使用年資 : 3
使用版本 : 2007
經驗值 : 5282
威望值 : 6
注冊日期 : 2011-01-04
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共2頁)
這個論壇的權限:
您 無法 在這個版面回復文章