3D實體2_聯交差集

2012/08/18 19:56


'///實體聯交差集///////////////////////////////////////////////////////
Public Sub 實體聯交差集()
'實體1圓球
Dim e1 As SmartSolidElement
Set e1 = SmartSolid.CreateSphere(Nothing, 5): e1.Color = 4
ActiveModelReference.AddElement e1
'實體2平板
Dim e2 As SmartSolidElement
Set e2 = SmartSolid.CreateSlab(Nothing, 5, 5, 20): e2.Color = 11
ActiveModelReference.AddElement e2

Dim e As SmartSolidElement
Set e = SmartSolid.SolidIntersect(e1, e2) '交集
e.Transform Transform3dFromXYZ(10, 0, 0): ActiveModelReference.AddElement e

Set e = SmartSolid.SolidSubtract(e1, e2) '差集
e.Transform Transform3dFromXYZ(20, 0, 0): ActiveModelReference.AddElement e

Set e = SmartSolid.SolidUnion(e1, e2) '聯集
e.Transform Transform3dFromXYZ(30, 0, 0): ActiveModelReference.AddElement e


End Sub




'///創建3D平板接口函數////////////////////////////
Function S_SLABL(p As Point3d, W, D, H) As Element '///創建3D平板接口函數
Set S_SLABL = SmartSolid.CreateSlab(Nothing, W, D, H)
S_SLABL.Transform Transform3dFromXYZ(p.X + (W / 2), p.Y + (D / 2), p.Z + (H / 2))
End Function

'///創建門框/////////////////////////////////////
Function S3_CM(p As Point3d, W, D, H, T) As Element '///創建門框函數
Dim e1, e2 As Element
Set e1 = S_SLABL(p, W, D, H)
Set e2 = S_SLABL(Point3dFromXYZ(p.X + T, p.Y, p.Z), W - T - T, D, H - T)
Set S3_CM = SmartSolid.SolidSubtract(e1, e2) '差集
End Function



Sub 繪門框()
Dim e As Element
Set e = S3_CM(Point3dFromXYZ(0, 0, 0), 90, 12, 210, 5) '繪門框--->
ActiveModelReference.AddElement e
End Sub

'////////////////////////////////////////////////////////


※可將門框、窗框、桶身、門片等各撰寫其專有的『組件函數』,使用更方便喔!




arrow
arrow
    全站熱搜
    創作者介紹
    創作者 suen7969 的頭像
    suen7969

    人生何處不相逢

    suen7969 發表在 痞客邦 留言(0) 人氣()