3D實體2_聯交差集
'///實體聯交差集///////////////////////////////////////////////////////
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
'////////////////////////////////////////////////////////
※可將門框、窗框、桶身、門片等各撰寫其專有的『組件函數』,使用更方便喔!