AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Io15010 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Easase10 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Oiu15010 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? 2020-211 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Oo-2-110 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? BPl3tjj

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

向下

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Empty [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

發表 由 蜻蜓草 于 2013-07-22, 21:27

請問有沒有人知道, "圖塊"裡如果有1個MTEXT, VBA 可以修改其值嗎?
我現在卡在跟本就不知道要怎麼抓出字串, 更別說修改字串了。
還是說圖塊裡的MTEXT 本來就不能改的呢?
如果有人知道, 煩請指點一下, 感謝~~

以下是可以抓出圖塊的定義屬性, 那如果是MTEXT 文字呢?
   If objBlockReference.HasAttributes Then
         '取得屬性的陣列
         avarAttributes = objBlockReference.GetAttributes
       
         '從陣列中依序取出屬性物件
         For intIndex = LBound(avarAttributes) To UBound(avarAttributes)
              '取得屬性物件
              Set objAcadAttributeReference = avarAttributes(intIndex)
              '判斷是否為屬性
              If objAcadAttributeReference.ObjectName = "AcDbAttribute" Then
                  If objAcadAttributeReference.TagString = Field Then
                       objAcadAttributeReference.TextString = value
                       Exit Sub
                  End If
              End If
        Next intIndex
  End If
蜻蜓草
蜻蜓草
一般會員
一般會員

文章總數 : 77
年齡 : 43
來自 : 南投
職業 :
愛好 : 電影
個性 : 溫和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 3423
威望值 : 0
注冊日期 : 2012-08-16
男 雙魚座 蛇

回頂端 向下

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Empty 回復: [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

發表 由 ginse0727 于 2013-07-23, 07:17

嘿!又是我來回答了!
哈哈!看來這陣子我比較閒!

'從陣列中依序取出屬性物件
For intIndex = LBound(avarAttributes) To UBound(avarAttributes)

   '取得屬性物件
   Set objAcadAttributeReference = avarAttributes(intIndex)
       '取得屬性物件的Tag屬性及值
       If objAcadAttributeReference.ObjectName = "AcDbAttribute" Then
           strShowMessage = objAcadAttributeReference.TagString + "   "  + objAcadAttributeReference.TextString    
       End If

Next intIndex

試看看吧!
ginse0727
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 46
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 5312
威望值 : 498
發帖精華 : 1
注冊日期 : 2010-07-13
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Empty 回復: [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

發表 由 Tiger&蘋果爸 于 2013-07-23, 10:09

ginse0727 寫到:嘿!又是我來回答了!
哈哈!看來這陣子我比較閒!
真的是辛苦你啦~謝謝囉 
感恩熱心幫助提攜後輩!
讚啦!! 

____________________________________________________________________________________
[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Oo-2-110 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Ia15010 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Ziao1510 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? BPl3tjj
Tiger&蘋果爸
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 19338
年齡 : 44
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 76554
威望值 : 14627
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i.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

回頂端 向下

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Empty 回復: [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

發表 由 ginse0727 于 2013-07-23, 12:30

蘋果爸,其實也沒什麼啦!教學相長是真的,我在研究別人問題的同時,碰巧也會學到自己不知道的事,而且也是兼練功!甘之如飴啊!
反到是你們團隊要維持這個論壇的運作才是真的辛苦哩!讚啦!! 
ginse0727
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 46
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 5312
威望值 : 498
發帖精華 : 1
注冊日期 : 2010-07-13
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Empty 回復: [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

發表 由 蜻蜓草 于 2013-07-23, 20:27

報告....小弟功力不夠還是沒能弄出來...汗..感覺上抓到的還是圖塊的定義屬性, 不是Mtext 的文字
提供下測試圖檔好了...

測試檔

能抓到裡頭的123字串改成456嗎?

avarAttributes = objBlockReference.GetAttributes 感覺上好像只會抓定 自定義的屬性..



程式碼
Function ReadBlockMTEXT(str As String, obj As AcadObject) As Variant
Dim avarAttributes As Variant
Dim intIndex As Integer
Dim objBlockReference As AcadBlockReference
Dim objAcadAttributeReference  As AcadAttributeReference

'判斷是否為 Block 物件
If obj.ObjectName = "AcDbBlockReference" Then
   '取得所選定的Block物件
   Set objBlockReference = obj
 
   '判斷是否有包含屬性
'    If objBlockReference.HasAttributes Then
         '取得屬性的陣列
         avarAttributes = objBlockReference.GetAttributes
                     
         '從陣列中依序取出屬性物件
 For intIndex = LBound(avarAttributes) To UBound(avarAttributes)

  '取得屬性物件
  Set objAcadAttributeReference = avarAttributes(intIndex)
      '取得屬性物件的Tag屬性及值
      If objAcadAttributeReference.ObjectName = "AcDbAttribute" Then
          strShowMessage = objAcadAttributeReference.TagString + "   " + objAcadAttributeReference.TextString
      End If

 Next intIndex
End If
End Function
蜻蜓草
蜻蜓草
一般會員
一般會員

文章總數 : 77
年齡 : 43
來自 : 南投
職業 :
愛好 : 電影
個性 : 溫和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 3423
威望值 : 0
注冊日期 : 2012-08-16
男 雙魚座 蛇

回頂端 向下

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Empty 回復: [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

發表 由 ginse0727 于 2013-07-24, 06:11

我看過你的圖塊了,因為圖塊中的123沒有建立任何屬性關聯,程式中抓不到這個值,像"NOT THIS"這個值,有標籤有值,就可以抓出來做修改,
當然要改也不是做不到,我的想法是把圖塊截到,然後炸開後找到群組裡的123這個值,做完修改後再還重建圖塊,但是光聽描述的過程,
就知道程式就沒那麼簡單了,而且圖檔中要是不只這一個圖塊,還得要改圖塊名稱,才不會影響到其他的圖塊.

建議最簡單的做法是,重新製作這個圖塊,把"123"也做成有標籤的屬性.這樣同一張圖裡才能存在擁有多個不同值的圖塊.
ginse0727
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 46
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 5312
威望值 : 498
發帖精華 : 1
注冊日期 : 2010-07-13
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Empty 回復: [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎?

發表 由 蜻蜓草 于 2013-07-24, 22:15

原本只是想如果可以直接取用到的話, 程式會比較簡單, 如果不能直接取用的話, 反而變更復雜...這部份暫時先不處理好了...哈~~, 少走了很多冤枉路。
感謝 ginse0727 兄~~
不過 使用過濾器 acSelectionSetAll 的問題還是試不出來..有空的話再幫忙解說下囉~
蜻蜓草
蜻蜓草
一般會員
一般會員

文章總數 : 77
年齡 : 43
來自 : 南投
職業 :
愛好 : 電影
個性 : 溫和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 3423
威望值 : 0
注冊日期 : 2012-08-16
男 雙魚座 蛇

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Uos15010 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? BPl3tjj [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Ziao1510 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Oo-2-110 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? Oooo-110 [討論]請問有沒有人知道, 圖塊裡如果有1個MTEXT, VBA 可以修改其值嗎? 2020-211