' ' tapped hole recognition by drill diameter.bas - Event handlers for hole recognition. ' changes holes of a specific diameter to tapped hole feature type. ' ' Author: Paul T. Shilton ' Organization: Engineering Geometry Systems ' Date: 12/17/01 ' Copyright (c) 2004, Engineering Geometry Systems ' Modified: Kyle Kershaw 03/09/04 ' ' Added code to test for diameter and if specific diameter, turn into tapped hole type ' ' Requires V10.4.0.01 or greater ' ' General Description ' ' Event handler that is called before a hole is recognized. ' Use this handler to modify the type or dimensions of a hole before the feature is created. ' Private Sub Application_HoleRecogBeforeCreate(Doc As FeatureCAM.FMDocument, ByVal Color As Long, ByVal recog_type As FeatureCAM.tagFMHoleType, _ create_type As FeatureCAM.tagFMHoleType, thru As Boolean, diameter As Double, depth As Double, _ chamfer As Double, sink_angle As Double, diameter2 As Double, depth2 As Double, thread_depth As Double, _ tpi_pitch As Double, is_pitch As Boolean) diameter = Round(diameter, 4) If diameter = 0.0469 Then ' 0-80 create_type = eHT_TappedHole diameter = .060 tpi_pitch = 80 ElseIf diameter = 0.0595 Then ' 1-64 create_type = eHT_TappedHole diameter = .073 tpi_pitch = 64 ElseIf diameter = 0.0700 Then ' 2-56 create_type = eHT_TappedHole diameter = .086 tpi_pitch = 56 ElseIf diameter = 0.0785 Then ' 3-48 create_type = eHT_TappedHole diameter = .099 tpi_pitch = 48 ElseIf diameter = 0.0820 Then ' 3-56 create_type = eHT_TappedHole diameter = .099 tpi_pitch = 56 ElseIf diameter = 0.0890 Then ' 4-40 create_type = eHT_TappedHole diameter = .112 tpi_pitch = 40 ElseIf diameter = 0.0935 Then ' 4-48 create_type = eHT_TappedHole diameter = .112 tpi_pitch = 48 ElseIf diameter = 0.1015 Then ' 5-40 create_type = eHT_TappedHole diameter = .125 tpi_pitch = 40 ElseIf diameter = 0.1040 Then ' 5-44 create_type = eHT_TappedHole diameter = .125 tpi_pitch = 44 ElseIf diameter = 0.0935 Then ' 4-48 create_type = eHT_TappedHole diameter = .112 tpi_pitch = 48 ElseIf diameter = 0.1065 Then ' 6-32 create_type = eHT_TappedHole diameter = .138 tpi_pitch = 32 ElseIf diameter = 0.1130 Then ' 6-40 create_type = eHT_TappedHole diameter = .138 tpi_pitch = 40 ElseIf diameter = 0.1360 Then ' 8-32 create_type = eHT_TappedHole diameter = .164 tpi_pitch = 32 ElseIf diameter = 0.1495 Then ' 10-24 create_type = eHT_TappedHole diameter = .190 tpi_pitch = 24 ElseIf diameter = 0.1590 Then ' 10-32 create_type = eHT_TappedHole diameter = .190 tpi_pitch = 32 ElseIf diameter = 0.1770 Then ' 12-24 create_type = eHT_TappedHole diameter = .216 tpi_pitch = 24 ElseIf diameter = 0.1820 Then ' 12-28 create_type = eHT_TappedHole diameter = .216 tpi_pitch = 28 ElseIf diameter = 0.2010 Then ' 1/4-20 create_type = eHT_TappedHole diameter = .250 tpi_pitch = 20 ElseIf diameter = 0.2130 Then ' 1/4-28 create_type = eHT_TappedHole diameter = .250 tpi_pitch = 28 ElseIf diameter = 0.2570 Then ' 5/16-18 create_type = eHT_TappedHole diameter = .3125 tpi_pitch = 18 ElseIf diameter = 0.2720 Then ' 5/16-24 create_type = eHT_TappedHole diameter = .3125 tpi_pitch = 24 ElseIf diameter = 0.3125 Then ' 3/8-16 create_type = eHT_TappedHole diameter = .375 tpi_pitch = 16 ElseIf diameter = 0.3320 Then ' 3/8-24 create_type = eHT_TappedHole diameter = .375 tpi_pitch = 24 ElseIf diameter = 0.3680 Then ' 7/16-14 create_type = eHT_TappedHole diameter = .4375 tpi_pitch = 14 ElseIf diameter = 0.3906 Then ' 7/16-20 create_type = eHT_TappedHole diameter = .4375 tpi_pitch = 20 ElseIf diameter = 0.4219 Then ' 1/2-13 create_type = eHT_TappedHole diameter = .5 tpi_pitch = 13 ElseIf diameter = 0.4531 Then ' 1/2-20 create_type = eHT_TappedHole diameter = .5 tpi_pitch = 20 Else create_type = eHT_None End If If create_type = eHT_TappedHole Then If thru Then thread_depth = depth Else thread_depth = depth - 5/tpi_pitch ' if blind subtract 5 pitches from hole depth End If End If End Sub ' ' Event handler that is called after a hole is recognized. ' Use this handler to set attributes on the hole feature after it has been created. Private Sub Application_HoleRecogAfterCreate(Doc As FeatureCAM.FMDocument, Hole As FeatureCAM.FMFeature, ByVal Color As Long) If Color = RGB(255,0,128) Then ' reddish holes Hole.SetAttribute ( eAID_DoReam,, True,,False) End If End Sub