[問題] 新手發問 VBA of AutoCAD
需求:欲產生出多個 3D 多面體
方法:先產生出正方體,再利用 SliceSolid 方法切
假設所切的面,都不會切到 原始正方體的中心點,
換句話說,想保留下來的部份都是要包含中心點的那個部份
但是,不知道要如何判斷哪一個部份有包含中心點.....
所以想說中心點也成為一個3D物件
用 CheckInterference 方法,來判斷到底所切出來的兩個部份
哪一個含有中心點
照理來說含有中心點的部份,會回傳物件,但是不知道用什麼函數才能判斷
是否有回傳物件......
Sub MySub()
Dim ccObj As Acad3DSolid
Dim boxObj As Acad3DSolid
Dim sliceObj As Acad3DSolid
center(0) = 11.12: center(1) = 5.56: center(2) = 1.11
'建立中心點物件
Set ccObj = ThisDrawing.ModelSpace.AddBox(center, 0.001, 0.001, 0.001)
'建立正方體
Set boxObj = ThisDrawing.ModelSpace.AddBox(center, 5.45, 5.45, 5.45)
sp1(0) = 10.74: sp1(1) = 4.22: sp1(2) = 0.52
sp2(0) = 9.75: sp2(1) = 5.92: sp2(2) = 0.14
sp3(0) = 12.48: sp3(1) = 5.2: sp3(2) = 0.36
'進行切割
Set sliceObj = boxObj.SliceSolid(sp1, sp2, sp3, True)
Dim tmp1 As Acad3DSolid
Dim tmp2 As Acad3DSolid
'判斷中心點物件ccObj 是否與boxObj 有重疊的部份,有則傳回重疊的部份
Set tmp1 = boxObj.CheckInterference(ccObj, True)
'同理
Set tmp2 = sliceObj.CheckInterference(ccObj, True)
' 問題來了,要怎樣判斷哪一個物件裡面有實體物件
' 請問有什麼函數可以判斷嗎?
'
' 或是各位有更好的判斷方法呢????
End Sub
感謝回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.229.5.141
推
03/17 07:55, , 1F
03/17 07:55, 1F
推
03/17 13:51, , 2F
03/17 13:51, 2F
→
03/17 13:53, , 3F
03/17 13:53, 3F
→
03/17 13:55, , 4F
03/17 13:55, 4F
→
03/17 13:56, , 5F
03/17 13:56, 5F
→
03/17 13:57, , 6F
03/17 13:57, 6F
→
03/17 14:00, , 7F
03/17 14:00, 7F
→
03/17 14:02, , 8F
03/17 14:02, 8F
推
03/17 22:23, , 9F
03/17 22:23, 9F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
Cad_Cae 近期熱門文章
PTT數位生活區 即時熱門文章