AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[討論]有沒有圖塊的快速標註方法?

向下

[討論]有沒有圖塊的快速標註方法?

發表 由 naruto018 于 2017-01-10, 10:26

圖面上有多個圖塊需要標註
但因為太多個,又因為多個區域
標註在基準點上
我只找到QDIM的快速標註 圓和弧
但沒法用在圖塊
所以有沒有圖塊的快速標註方法?


上圖都是圖塊
標註成如下圖(希望可以標註再插入點或圖塊中心)

(如看不到圖片請案右鍵分頁開啟圖片)


naruto018 在 2017-01-14, 12:54 作了第 3 次修改
avatar
naruto018
初級會員
初級會員

文章總數 : 87
年齡 : 26
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 2
經驗值 : 1117
威望值 : 90
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 pc200098 于 2017-01-13, 11:50

請可以列個使用方式嗎? 因為QIDM有很多功能,標註方向、方式都會因使用者而不同。
avatar
pc200098
初級會員
初級會員

文章總數 : 46
年齡 : 32
來自 : 台南市
職業 : 機械製圖
愛好 : 電玩
個性 : 執著
使用年資 : 12
使用版本 : 2013&2016
積分 : 1
經驗值 : 2983
威望值 : 55
注冊日期 : 2011-03-10
男 天秤座 牛

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 naruto018 于 2017-01-14, 12:52

使用QDIM沒辦法把圖塊的插入點當作標註點
會顯示成無效點
無法標註出來
但是使用QDIM裡的編輯-加入標著點可以選到圖塊地插入點
才能夠標註
avatar
naruto018
初級會員
初級會員

文章總數 : 87
年齡 : 26
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 2
經驗值 : 1117
威望值 : 90
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

回頂端 向下

我寫的圖塊快速標註程式(VBA), 參考一下!!

發表 由 shackle_2005 于 2017-01-14, 13:44

選取物件會過濾不是圖塊的物件, 程式會自動抓圖塊的中心點, 然後再點選標註要落下的地方. 試用一下如果有問題我再修改, 因為我只會寫程式, 不會畫圖. 3Q !!
附件
block_qdim_20170114.zip 您無權下載這里的附件。(26 Kb) 下載 6 次
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 naruto018 于 2017-01-14, 14:49

shackle_2005 寫到:選取物件會過濾不是圖塊的物件, 程式會自動抓圖塊的中心點, 然後再點選標註要落下的地方. 試用一下如果有問題我再修改, 因為我只會寫程式, 不會畫圖. 3Q !!

感謝shackle_2005大大
我試用了一下
大致上就是我要的
不過我發現有個問題
如果選擇註解的平行方向上有2個以上的物體的話
會出現標註為0的問題
avatar
naruto018
初級會員
初級會員

文章總數 : 87
年齡 : 26
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 2
經驗值 : 1117
威望值 : 90
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 shackle_2005 于 2017-01-14, 15:16

方便的話可能上傳一下 有問題的部份dwg sample 圖檔. 我不會畫圖, 測試我是自己隨便弄兩個圖塊, 不太了解問題. 3Q
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 naruto018 于 2017-01-14, 17:23

大致上類似CAD檔內的房間
我挑出不同圖塊密度比較高部分
感謝大大的幫忙
附件
Drawing1.zip 您無權下載這里的附件。(51 Kb) 下載 7 次
avatar
naruto018
初級會員
初級會員

文章總數 : 87
年齡 : 26
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 2
經驗值 : 1117
威望值 : 90
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 shackle_2005 于 2017-01-14, 17:59

我懂了, 程式我花五分鐘就寫好了, 是簡單陽春的功能. 所以同高度的圖塊之間也會標註, 所以會是 0. 比較簡單的方法就是不要全選圖塊, 同高度選一個圖塊就好了. 同高度只要標註一個, 不出現 0, 這就比較複雜, 我要慢慢試. OK
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 jenniferaptg 于 2017-01-14, 22:35

終於找到我要的程式了 因為每次都要花很多時間在對點 也誠心感謝善心人士 分享這個程式 讓我提高工作效率

jenniferaptg
初級會員
初級會員

文章總數 : 118
年齡 : 44
來自 : taiwan
職業 : cafe
愛好 : 電腦
個性 : 平易近人
使用年資 : 15
使用版本 : 用最熟的那一版
經驗值 : 4018
威望值 : 30
注冊日期 : 2009-01-30
藍鵲136號
女 雙子座 虎

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 shackle_2005 于 2017-01-14, 23:02

圖塊快速標註(VBA) 程式原理說明 : 1. 先過濾出要標註的圖塊. 2. 圖塊.getboundingbox 這個 VBA 程式指令可以得到圖塊的左下角及右上角點座標. 3. 得到這兩個座標就可以算出圖塊的正中心點. 4. 在每個圖塊的正中心點畫一個假功能的小圓 5. 建立一個新的群組, 把假功能的小圓都加入. 6. 因為 qdim 指令可以輸入 群組(G), 所以把很多小圓的群組餵給 qdim 指令. 7. 再點選標註落點, 這樣就標註好了, 最後再把所有假功能的小圓全部刪除. 我個人覺得 VBA 寫有點難又不太難的程式很好用, 大家可以參考一下.
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 naruto018 于 2017-01-15, 08:34

shackle_2005 寫到:圖塊快速標註(VBA) 程式原理說明 : 1. 先過濾出要標註的圖塊. 2. 圖塊.getboundingbox 這個 VBA 程式指令可以得到圖塊的左下角及右上角點座標. 3. 得到這兩個座標就可以算出圖塊的正中心點. 4. 在每個圖塊的正中心點畫一個假功能的小圓 5. 建立一個新的群組, 把假功能的小圓都加入. 6. 因為 qdim 指令可以輸入 群組(G), 所以把很多小圓的群組餵給 qdim 指令. 7. 再點選標註落點, 這樣就標註好了, 最後再把所有假功能的小圓全部刪除. 我個人覺得 VBA 寫有點難又不太難的程式很好用, 大家可以參考一下.

感謝shackle_2005大大的解說
雖然我寫過Excel VBA(不精通)
但沒寫過AutoCAD的
不清楚相關的控制指令的部分
所以我沒有去碰,加上不清楚哪裡可以找到相關的範例和教學

不過我測試一下QDIM的指令
並排好幾個圓並不會出現標註為0的問題
avatar
naruto018
初級會員
初級會員

文章總數 : 87
年齡 : 26
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 2
經驗值 : 1117
威望值 : 90
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

回頂端 向下

這我就不了解了, 我慢慢研究一下, 3Q : )

發表 由 shackle_2005 于 2017-01-15, 10:52

這證明我不會畫圖, Qdim 怎麼運作我不了解, 我只是把圖塊餵給 Qdim, 我再慢慢研究一下, 加油!!

Dim tm As AcadModelSpace
Dim tu As AcadUtility
Dim ent_set As AcadSelectionSet
Dim group_obj As AcadGroup
Dim ent_obj As AcadObject
Dim add_entity(0) As AcadEntity
Dim min_p As Variant
Dim max_p As Variant
Dim center_p(0 To 2) As Double ' 一般我都用 double 雙倍精度, 所以高度差一點點, 就會不對.
Dim cir As AcadCircle
Dim group_name As String
Dim dim_p As Variant

' 設定 tm 為這張圖面的模型空間, 設定 tu 為這張圖面的公用程式
Set tm = ThisDrawing.ModelSpace: Set tu = ThisDrawing.Utility

Do While True

Set ent_set = ThisDrawing.SelectionSets.Add(rnd_process)

tu.prompt "請選取要標註的物件!!....... Esc(結束)"

ent_set.SelectOnScreen

If ent_set.count = 0 Then Exit Do

dim_p = tu.GetPoint(, "請點選標註落點!!..........")

If Err Then Exit Do

group_name = rnd_process

Set group_obj = ThisDrawing.Groups.Add(group_name)

For Each ent_obj In ent_set

   If TypeOf ent_obj Is AcadBlockReference Then
   
     ' *** 抓圖塊左下跟右上角點座標
      ent_obj.GetBoundingBox min_p, max_p     

     ' *** 計算圖塊的正中心點, 多個平行的圖塊, 正中心點只要差個 0.0000000001, Qdim 就會以為是不同高度的圖塊.
      center_p(0) = (min_p(0) + max_p(0)) / 2: center_p(1) = (min_p(1) + max_p(1)) / 2
   
      Set cir = tm.AddCircle(center_p, 1): cir.Update
     
      Set add_entity(0) = cir: group_obj.AppendItems add_entity
   End If
Next ent_obj
     
' ***************** 執行 Qdim, 把小圓組成的群組餵給指令 *********************************
ThisDrawing.SendCommand "qdim" & vbCr & "g" & vbCr & group_name & vbCr & vbCr & _
                                                                     p_str_2d(dim_p) & vbCr
For Each ent_obj In group_obj
   ent_obj.Delete
Next ent_obj

group_obj.Delete

Loop


shackle_2005 在 2017-01-16, 06:06 作了第 4 次修改
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

一頭霧水

發表 由 shackle_2005 于 2017-01-15, 11:18

但我發現 S 圖塊的地方, 是兩個圖塊重疊. 但其它好像沒有重疊, 真是兩頭霧水, 我也不知道為什麼........ ?????
附件
999.zip 您無權下載這里的附件。(159 Kb) 下載 2 次
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

我找到問題了, debug 修正 OK. Happy

發表 由 shackle_2005 于 2017-01-15, 11:35

我在計算圖塊正中心點的時候, 是使用 double 雙倍精度變數. 所以多個圖塊平行只要高度差一點點 0.00000001 , Qdim 指令就會以為平行的圖塊是不同高度, 用 int 指令把很多小數的座標取整數就 OK 了. I got it. 3Q !!
附件
new_block_qdim_002.zip 您無權下載這里的附件。(11 Kb) 下載 5 次


shackle_2005 在 2017-02-13, 19:25 作了第 2 次修改
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 naruto018 于 2017-01-15, 16:55

shackle_2005 寫到:我在計算圖塊正中心點的時候, 是使用 double 雙倍精度變數. 所以多個圖塊平行只要高度差一點點 0.00000001 , Qdim 指令就會以為平行的幾塊是不同高度, 改為 integer 整數就 OK 了. I got it. 3Q !!

恭喜shackle_2005大大找出問題
感謝你的付出
原來變數設定就影響那麼多
終於可以不用點那麼酸在那裏標註了 感動
avatar
naruto018
初級會員
初級會員

文章總數 : 87
年齡 : 26
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 2
經驗值 : 1117
威望值 : 90
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 shackle_2005 于 2017-01-15, 17:23

有空可以學學 Autocad VBA, 寫程式應該都大同小異. 只是有時候看不出問題在那裏, debug 就要搞很久, 雙精度的問題我有類似的經驗, 所以這次才快一點解決. 歡迎有問題再 PO 上來大家討論. 3Q !!


shackle_2005 在 2017-01-16, 05:53 作了第 1 次修改
avatar
shackle_2005
初級會員
初級會員

文章總數 : 128
年齡 : 47
來自 : 台中
職業 : 程式設計
愛好 : 音樂
個性 : 隨和
使用年資 : 10 年
使用版本 : 2013
積分 : 2
經驗值 : 3846
威望值 : 244
注冊日期 : 2010-09-20
男 獅子座 豬

回頂端 向下

回復: [討論]有沒有圖塊的快速標註方法?

發表 由 Tiger&蘋果爸 于 2017-01-15, 23:12

shackle_2005 寫到:有空可以學學 Autocad VBA, 寫程式應該都大同小異. 只是有時候看不出問題在那裏, debug 有時候要搞很久, 雙精度的問題我有類似的經驗, 所以這次才快一點幾解決. 歡迎有問題再 PO 上來大家討論. 3Q !!
謝謝shackle_2005前輩這麼有心...
有機會也來學學vba
讚啦!!

____________________________________________________________________________________
avatar
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 17893
年齡 : 42
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 68489
威望值 : 13334
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i11.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章