[已解決]如何用尋找功能一次變更不同內容文字
3 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 2D討論
第1頁(共2頁)
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
下載 002 才對, 3Q
如果 FIND 有問題也可以用 VBA
- 附件
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
回復: [已解決]如何用尋找功能一次變更不同內容文字
shackle_2005 寫到:如果 FIND 有問題也可以用 VBA
感謝分享
說來慚愧
小弟沒有用過VBA....
剛剛上網爬文照網路步驟安裝之後點執行程式
什麼都沒有出現...
應該是我的操作有誤
想請問怎麼正確使用?
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
可以的話請提供簡單的 sample 圖檔, 我測試一下, 3Q
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
回復: [已解決]如何用尋找功能一次變更不同內容文字
shackle_2005 寫到:可以的話請提供簡單的 sample 圖檔, 我測試一下, 3Q
已上傳
麻煩了 感謝
- 附件
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
我原來抓的 TEXT, 原來你是用 MTEXT 所以抓不到. fine_text_003 就可以了, 旁邊的 m, m^2 ..... 也都可以改成小數一位, 參考一下.
- 附件
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
VBA 教學時間 2021
Option Explicit
Public tm As AcadModelSpace ' 設 tm 簡化名稱模型空間
Public tu As AcadUtility
Public pi As Double
Public Sub find_text()
On Error Resume Next
ThisDrawing.SendCommand "ucs" & vbCr & "w" & vbCr
ThisDrawing.SendCommand "undo" & vbCr & "be" & vbCr
pi = 3.141592 / 180
Set tm = ThisDrawing.ModelSpace: Set tu = ThisDrawing.Utility
Dim text_set As AcadSelectionSet
Dim text_obj As AcadMText
Dim ent As AcadObject
Dim last_str As String
' 建立一個文字選擇集
Set text_set = ThisDrawing.SelectionSets.Add("text_set_name")
tu.prompt "請選取數字 !! "
text_set.SelectOnScreen ' 在圖面上框選物件
For Each ent In text_set
If TypeOf ent Is AcadMText Then ' 過濾出 MTEXT 文字
Set text_obj = ent
last_str = Mid(text_obj.TextString, Len(text_obj.TextString), 1) ' 抽出原來字串最後一個字元是 0 還是 m, m^2
Select Case last_str
Case "0": text_obj.TextString = Mid(text_obj.TextString, 1, Len(text_obj.TextString) - 1)
text_obj.Update
Case Else
text_obj.TextString = Mid(text_obj.TextString, 1, Len(text_obj.TextString) - 2) & last_str
text_obj.Update
End Select
End If
Next ent
ThisDrawing.SendCommand "undo" & vbCr & "e" & vbCr
End Sub
Public tm As AcadModelSpace ' 設 tm 簡化名稱模型空間
Public tu As AcadUtility
Public pi As Double
Public Sub find_text()
On Error Resume Next
ThisDrawing.SendCommand "ucs" & vbCr & "w" & vbCr
ThisDrawing.SendCommand "undo" & vbCr & "be" & vbCr
pi = 3.141592 / 180
Set tm = ThisDrawing.ModelSpace: Set tu = ThisDrawing.Utility
Dim text_set As AcadSelectionSet
Dim text_obj As AcadMText
Dim ent As AcadObject
Dim last_str As String
' 建立一個文字選擇集
Set text_set = ThisDrawing.SelectionSets.Add("text_set_name")
tu.prompt "請選取數字 !! "
text_set.SelectOnScreen ' 在圖面上框選物件
For Each ent In text_set
If TypeOf ent Is AcadMText Then ' 過濾出 MTEXT 文字
Set text_obj = ent
last_str = Mid(text_obj.TextString, Len(text_obj.TextString), 1) ' 抽出原來字串最後一個字元是 0 還是 m, m^2
Select Case last_str
Case "0": text_obj.TextString = Mid(text_obj.TextString, 1, Len(text_obj.TextString) - 1)
text_obj.Update
Case Else
text_obj.TextString = Mid(text_obj.TextString, 1, Len(text_obj.TextString) - 2) & last_str
text_obj.Update
End Select
End If
Next ent
ThisDrawing.SendCommand "undo" & vbCr & "e" & vbCr
End Sub
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
回復: [已解決]如何用尋找功能一次變更不同內容文字
shackle_2005 寫到:我原來抓的 TEXT, 原來你是用 MTEXT 所以抓不到. fine_text_003 就可以了, 旁邊的 m, m^2 ..... 也都可以改成小數一位, 參考一下.
不好意思
我沒有注意到我是MTEXT
因為日本很多製圖軟體
在轉檔時如果是TEXT文字的位置就會完全跑掉
所以只能用MTEXT
非常謝謝你
剛剛試了一下
完全沒問題!!
使用上正常
所以m,m^2的2可以改成任何我要的位置嗎?
例如小數3位4位之類的
非常謝謝你詳盡的VBA教學
看來我要來學習這些語法了
有看沒有懂XD
剛剛想要嘗試變換m,m^2這裡時發現裡面全是亂碼
找不到m,m^2這串
上網爬文說用WORD開然後切換語言就好
可是我切回繁體中文一樣全是亂碼
想請問有什麼辦法可以解決這問題嗎?
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
第一個問題, m, m^2 的位置也給個例子, 改變前改變後, 我也是有看沒有懂.
第二個問題可能要請版主回答, 我不會畫圖, 3Q.
第二個問題可能要請版主回答, 我不會畫圖, 3Q.
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
回復: [已解決]如何用尋找功能一次變更不同內容文字
shackle_2005 寫到:Option Explicit
Public tm As AcadModelSpace ' 設 tm 簡化名稱模型空間
Public tu As AcadUtility
Public pi As Double
Public Sub find_text()
On Error Resume Next
ThisDrawing.SendCommand "ucs" & vbCr & "w" & vbCr
ThisDrawing.SendCommand "undo" & vbCr & "be" & vbCr
pi = 3.141592 / 180
Set tm = ThisDrawing.ModelSpace: Set tu = ThisDrawing.Utility
Dim text_set As AcadSelectionSet
Dim text_obj As AcadMText
Dim ent As AcadObject
Dim last_str As String
' 建立一個文字選擇集
Set text_set = ThisDrawing.SelectionSets.Add("text_set_name")
tu.prompt "請選取數字 !! "
text_set.SelectOnScreen ' 在圖面上框選物件
For Each ent In text_set
If TypeOf ent Is AcadMText Then ' 過濾出 MTEXT 文字
Set text_obj = ent
last_str = Mid(text_obj.TextString, Len(text_obj.TextString), 1) ' 抽出原來字串最後一個字元是 0 還是 m, m^2
Select Case last_str
Case "0": text_obj.TextString = Mid(text_obj.TextString, 1, Len(text_obj.TextString) - 1)
text_obj.Update
Case Else
text_obj.TextString = Mid(text_obj.TextString, 1, Len(text_obj.TextString) - 2) & last_str
text_obj.Update
End Select
End If
Next ent
ThisDrawing.SendCommand "undo" & vbCr & "e" & vbCr
End Sub
我要從哪邊可以看到這些語法呢?
我的打開都是這種亂碼
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
原來你是說這個, 程式是有保護沒有打開, 你直接複製貼上就可以了. 但你還是要買書, 或看資料, 從最簡單一行一行開始學起, 這樣改你會累死,
- 附件
shackle_2005 在 2021-03-09, 15:11 作了第 1 次修改
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
文字表達本來就不容易清楚, 不要想太多. 我的意思是你上傳圖檔 sample, 改變前的字是長什麼樣, 改變後又變成如何, 程式我來改就好了, 沒有問題, 加油.
- 附件
shackle_2005 在 2021-03-09, 15:25 作了第 1 次修改
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
你後來解釋的我有比較了解了, 樓上有 find_text_004, 005, 參考一下.
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
回復: [已解決]如何用尋找功能一次變更不同內容文字
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
不會啦, 我也是在練手感, 我也沒有每天都在寫 Autocad/VBA 這個程式, 也有在寫 VB.Net 等別的程式做別的工作, 這也是在找機會. 有空我幫大家解決小問題的程式, 如果有需要開發很大很複雜的專用程式就可以找我, 就是我的機會, 3Q. Autocad 2010 跟 Autocad 2011 用的 VBA 版本好像不一樣, 是我這邊的問題, sorry.
- 附件
shackle_2005 在 2021-03-09, 16:54 作了第 1 次修改
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
shackle_2005 寫到:不會啦, 我也是在練手感, 我也沒有每天都在寫 Autocad/VBA 這個程式, 也有在寫 VB.Net 等別的程式做別的工作, 這也是在找機會. 有空我幫大家解決小問題的程式, 如果有需要開發很大很複雜的專用程式就可以找我, 就是我的機會, 3Q. Autocad 2010 跟 Autocad 2011 用的 VBA 版本好像不一樣, 是我這邊的問題, sorry.
測試成功沒有問題~~~~~~~~~~~~~
太感謝了><
感動到淚流滿面
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
You are welcome, 這也是我的成就感, 看到整排數字自動改好, 我也很開心, 有其它問題請多多提出. VBA 比 Autolisp 我覺得好用很多, 但可能要一點基本英文能力, 希望有空多加油, 要外地也多保重健康. 我以前公司也接很多日本汽車模具設計, 我同學也在台灣 Nissan 工作, 加油.
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
回復: [已解決]如何用尋找功能一次變更不同內容文字
shackle_2005 寫到:You are welcome, 這也是我的成就感, 看到整排數字自動改好, 我也很開心, 有其它問題請多多提出. VBA 比 Autolisp 我覺得好用很多, 但可能要一點基本英文能力, 希望有空多加油, 要外地也多保重健康. 我以前公司也接很多日本汽車模具設計, 我同學也在台灣 Nissan 工作, 加油.
真的很感謝
我一開始也是下定決心要學
公司有Revit跟Cad
Revit用API
Cad有VBA或LISP
結果人算不如天算
工作多到炸
都沒多的時間可以好好學習
英文我是沒啥問題
平時有美國客戶 朋友也不少英語圈的
想問一下如果想學
有推薦的入門書籍嗎?
沒時間就只能自己生時間出來了
白天畫圖
下班搞代購
都快升天了XDD
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
回復: [已解決]如何用尋找功能一次變更不同內容文字
為什麼學 VBA 比 Autolisp 好 ?? 因為 VBA 在很多軟體都可以使用, 以前我去 104 找 Autocad VBA 相關的工程顧問公司的工作, 也有接到 Excel VBA 相關的工作叫我去面試, 因為 VB 都是大同小異, 在那一種軟體使用都差不多. 後來我也寫過 Catia, powermill, VB6, 現在用 VB.Net. 雖然我也是機械科畢業但我的數學不太好, 所以我花很多時間唸英文背單字, 2000 年我開始寫 VBA 的時候也是看 Autocad 的英文線上說明 on-line help 就可以入門, 也可以去 google 英文的程式資料偷抄回來用, 哈. 現在我都用全英文的軟體, 也可以看任何網站英文資料, 也可以看英文報紙, CNN, BBC. 總之, It's never too late to learn, 大家一起加油.
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
回復: [已解決]如何用尋找功能一次變更不同內容文字
1. Autocad 有 on-line help, fine_text_sample 是空白程式可以打開, 裏面有
Dim text_set as AcadSelectionSet
Dim text_obj As AcadMText
Dim ent As AcadObject
游標移到 AcadSelectionSet, AcadMText, AcadObject 上面, 再按 F1 就會有英文說明.
2. google "Autocad VBA" 也會有資料
3. Autocad VBA forum / Autocad 公司的英文論壇資料, samples 都很多
3. 買書也可以, 只是不多要找一下.
Dim text_set as AcadSelectionSet
Dim text_obj As AcadMText
Dim ent As AcadObject
游標移到 AcadSelectionSet, AcadMText, AcadObject 上面, 再按 F1 就會有英文說明.
2. google "Autocad VBA" 也會有資料
3. Autocad VBA forum / Autocad 公司的英文論壇資料, samples 都很多
3. 買書也可以, 只是不多要找一下.
- 附件
shackle_2005 在 2021-03-09, 17:45 作了第 3 次修改
shackle_2005- 初級會員
- 文章總數 : 232
年齡 : 53
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 3
經驗值 : 6758
威望值 : 361
注冊日期 : 2010-09-20
ROGER TSAI likes this post
回復: [已解決]如何用尋找功能一次變更不同內容文字
shackle_2005 寫到:為什麼學 VBA 比 Autolisp 好 ?? 因為 VBA 在很多軟體都可以使用, 以前我去 104 找 Autocad VBA 相關的工程顧問公司的工作, 也有接到 Excel VBA 相關的工作叫我去面試, 因為 VB 都是大同小異, 在那一種軟體使用都差不多. 後來我也寫過 Catia, powermill, VB6, 現在用 VB.Net. 雖然我也是機械科畢業但我的數學不太好, 所以我花很多時間唸英文背單字, 2000 年我開始寫 VBA 的時候也是看 Autocad 的英文線上說明 on-line help 就可以入門, 也可以去 google 英文的程式資料偷抄回來用, 哈. 現在我都用全英文的軟體, 也可以看任何網站英文資料, 也可以看英文報紙, CNN, BBC. 總之, It's never too late to learn, 大家一起加油.
請接收小弟膝蓋XD
我也要努力才行
日本這邊實力才是一切
不努力充實自己一下就被淘汰了
ROGER TSAI- 一般會員
- 文章總數 : 51
年齡 : 33
來自 : 日本松山
職業 : 鋼構設計
愛好 : 旅遊
個性 : 樂天
使用年資 : 新手初學
使用版本 : 2020 LT
經驗值 : 2548
威望值 : 12
注冊日期 : 2018-10-01
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 2D討論
第1頁(共2頁)
這個論壇的權限:
您 無法 在這個版面回復文章