CheckInterference Example

Using Programming Languages other than VBA

Sub Example_CheckInterference()
	' This example creates a box and a cylinder in model space.
	' It then finds the interference between the two solids and
	' creates a new solid from that interference.

	' For ease of viewing, different colors are used for the box, the
	' cylinder, and the interference solid.

	Dim color As AcadAcCmColor
	Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16")

	Dim boxObj As Acad3DSolid
	Dim boxLength As Double, boxWidth As Double, boxHeight As Double
	Dim boxCenter(0 To 2) As Double
	boxCenter(0) = 5#: boxCenter(1) = 5#: boxCenter(2) = 0
	boxLength = 10#: boxWidth = 7: boxHeight = 10#

	' Create the box (3DSolid) object in model space
	Set boxObj = ThisDrawing.ModelSpace.AddBox(boxCenter, boxLength, boxWidth, boxHeight)
	Call color.SetRGB(80, 100, 244)
		boxObj.TrueColor = color

	' Define the cylinder
	Dim cylinderObj As Acad3DSolid
	Dim cylinderCenter(0 To 2) As Double
	Dim cylinderRadius As Double
	Dim cylinderHeight As Double
	cylinderCenter(0) = 0#: cylinderCenter(1) = 0#: cylinderCenter(2) = 0#
	cylinderRadius = 5#
	cylinderHeight = 20#

	' Create the Cylinder (3DSolid) object in model space
	Set cylinderObj = ThisDrawing.ModelSpace.AddCylinder(cylinderCenter, cylinderRadius, cylinderHeight)
	Call color.SetRGB(244, 150, 50)
		cylinderObj.TrueColor = color

	' Find the interference between the two solids and create a new solid from it
	Dim solidObj As Acad3DSolid
	Set solidObj = boxObj.CheckInterference(cylinderObj, True)
	Call color.SetRGB(200, 150, 244)
		solidObj.TrueColor = color

	' Change the viewing direction of the viewport
	Dim NewDirection(0 To 2) As Double
	NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
	ThisDrawing.ActiveViewport.direction = NewDirection
	ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
	ZoomAll

	' You can now delete the box and cylinder in AutoCAD to
	' see the interference solid more clearly.
			 
End Sub

 

   Comments?