Sub Main Dim PCDapp As Object Dim PCDpart As Object Dim Cmds As Object Dim Cmd As Object Dim PointData As Object Dim Fcmd As Object Dim RmFcmd As Object Set PCDapp = CreateObject("PCDLRN.Application") Set PCDpart = PCDapp.ActivePartProgram Set Cmds = PCDpart.Commands Set PointData = CreateObject("PCDLRN.PointData") Dim mX, mY, mZ, mI, mJ, mK, mI2, mJ2, mK2 Dim AlgnID As String, NoDotID As String If Not Cmds(1).AlignmentCommand Is Nothing Then AlgnID = Cmds(1).ID End If If Cmds("RM") Is Nothing Then MsgBox "Attach command is missing" Else Cmds("RM").AttachCommand.AttachedAlign = AlgnID Cmds("RM").AttachCommand.LocalAlign = AlgnID For Each Cmd In Cmds If Cmd.IsAlignment And Cmd.ID <> "" Then AlgnID = Cmd.ID End If If Cmd.Type = RECALL_ALIGN Then AlgnID = cmd.GetText(REF_ID, 0) End If If Cmd.IsDCCFeature Then Set FCmd = Cmd.FeatureCommand If InStr(1, FCmd.ID, ".") > 0 Then NoDotID = Left(FCmd.ID, InStr(1, FCmd.ID, ".") - 1) & Right(FCmd.ID, Len(FCmd.ID) - InStr(1, FCmd.ID, ".")) Set RmFcmd = Cmds("RM:" & NoDotID).FeatureCommand Else Set RmFcmd = Cmds("RM:" & FCmd.ID).FeatureCommand End If FCmd.GetData PointData, FDATA_CENTROID, FDATA_MEAS, FDATA_PART, AlgnID, PLANE_TOP mX = PointData.X mY = PointData.Y mZ = PointData.Z FCmd.GetData PointData, FDATA_VECTOR, FDATA_MEAS, FDATA_PART, AlgnID, PLANE_TOP mI = PointData.I mJ = PointData.J mK = PointData.K PointData.XYZ mX, mY, mZ RmFcmd.PutData PointData, FDATA_CENTROID, FDATA_MEAS, FDATA_PART, AlgnID, PLANE_TOP PointData.IJK mI, mJ, mK RmFcmd.PutData PointData, FDATA_VECTOR, FDATA_MEAS, FDATA_PART, AlgnID, PLANE_TOP Select Case Cmd.Feature Case F_CIRCLE RmFcmd.TheoDiam = FCmd.TheoDiam RmFcmd.MeasDiam = FCmd.MeasDiam Case F_CONE RmFcmd.MeasAngle = FCmd.MeasAngle RmFcmd.MeasDiam = FCmd.MeasDiam RmFcmd.MeasLength = FCmd.MeasLength Case F_CYLINDER RmFcmd.MeasDiam = FCmd.MeasDiam RmFcmd.MeasLength = FCmd.MeasLength Case F_LINE RmFcmd.MeasLength = FCmd.MeasLength Case F_SLOT FCmd.GetData PointData, FDATA_SLOT_VECTOR, FDATA_MEAS, FDATA_PART, AlgnID, PLANE_TOP mI2 = PointData.I mJ2 = PointData.J mK2 = PointData.K PointData.IJK mI2, mJ2, mK2 RmFcmd.PutData PointData, FDATA_SLOT_VECTOR, FDATA_MEAS, FDATA_PART, AlgnID, PLANE_TOP RmFcmd.MeasDiam = FCmd.MeasDiam RmFcmd.MeasLength = FCmd.MeasLength Case F_SPHERE RmFcmd.MeasDiam = FCmd.MeasDiam Case F_ELLIPSE RmFcmd.MeasDiam = FCmd.MeasDiam End Select End If Next Cmd End If Set PCDapp = Nothing Set PCDpart = Nothing Set Cmds = Nothing Set Cmd = Nothing Set FCmd = Nothing Set RmFcmd = Nothing Set PointData = Nothing End Sub