- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I am developing a rule in which I need to deal with derived parts where I need to get some of the selected parameters added in to the current model document in the drawing.
I can't get this around: I request help
(Note: I have removed much of unnecessary lines from code)
Sub main 'Function oFix_D3_FG(oDwgModelDoc, oDN_DwgModelDoc, oDN_woExt_TDMD, oExtn_TDMD, oExit, oCancel) oDwgModelDoc = ThisDoc.ModelDocument 'ThisDrawing.ModelDocument ' oFFN_DwgModelDoc = oDwgModelDoc.FullFileName 'ThisDrawing Full File Name oDN_DwgModelDoc = oDwgModelDoc.DisplayName 'Display Name of ThisDrawing oCustomPropertySet_DwgModelDoc = oDwgModelDoc.PropertySets.Item("Inventor User Defined Properties") 'Some working parameters Dim oSelect_Other As String = "Select from a REFERENCE Document" Dim oCancel As String = "Cancel" oName_Para = InputBox("Name of ueser parameter (edit if necessary)", "Title", "D3") 'Name of user parameter reqyuired to be defined 'Parameters (all in general) Dim oAllParams_DwgModelDoc As Parameters oAllParams_DwgModelDoc = oDwgModelDoc.ComponentDefinition.Parameters 'User parameters Dim oUserParams_DwgModelDoc As UserParameters oUserParams_DwgModelDoc = oDwgModelDoc.ComponentDefinition.Parameters.UserParameters 'Reference Parameters Dim oReferenceParams_DwgModelDoc As ReferenceParameters oReferenceParams_DwgModelDoc = oDwgModelDoc.ComponentDefinition.Parameters.ReferenceParameters 'Create Name_Para user prameter in model cdocument Try 'To crete user parameter assigned to oName_Para oTry = oUserParams_DwgModelDoc.Item(oName_Para).Value Catch oUserParams_DwgModelDoc.AddByValue(oName_Para, 0, UnitsTypeEnum.kMillimeterLengthUnits) param = oUserParams_DwgModelDoc.Item(oName_Para) param.IsKey = True param.ExposedAsProperty = True End Try Dim oList_RefParamsDwgModelDoc As New ArrayList oList_RefParamsDwgModelDoc.Add(oSelect_Other) For Each oRefParamsDwgModelDoc_X In oReferenceParams_DwgModelDoc oRefParamsDwgModelDoc_XName = oRefParamsDwgModelDoc_X.Name oRefParamsDwgModelDoc_XExpression = oRefParamsDwgModelDoc_X.Expression ' oList_RefParamsDwgModelDoc.Add(oRefParamsDwgModelDoc_XName & ": " & oRefParamsDwgModelDoc_XExpression) oList_RefParamsDwgModelDoc.Add(oRefParamsDwgModelDoc_XName) Next oRefParamsDwgModelDoc_X oList_RefParamsDwgModelDoc.Add(oCancel) oRefParamsDwgModelDocX_Selected = InputListBox("LIST OF REFERENCE PARMETERS (MODEL DOC)", oList_RefParamsDwgModelDoc, oList_RefParamsDwgModelDoc(0), Title := "ASSIGN VALUE TO " & oName_Para, ListName := "SELECT d23 or A REF. PARAMETER") If oRefParamsDwgModelDocX_Selected = oCancel Then 'Do nothing End If If oRefParamsDwgModelDocX_Selected = oSelect_Other Then oD3_DP(oDwgModelDoc, oDN_DwgModelDoc, oAllParams_DwgModelDoc, oReferenceParams_DwgModelDoc) End If iLogicVb.UpdateWhenDone = True InventorVb.DocumentUpdate() End Sub Function oD3_DP(oDwgModelDoc, oDN_DwgModelDoc, oAllParams_DwgModelDoc, oReferenceParams_DwgModelDoc) 'Public Sub ModifDerivedParams() 'Dim oName_DP_Selected As DerivedPartComponent Dim oList_DPs_ModelDoc As New ArrayList() For Each oDP_ModelDoc In oDwgModelDoc.ComponentDefinition.ReferenceComponents.DerivedPartComponents oList_DPs_ModelDoc.Add(oDP_ModelDoc.Name) Next oDP_ModelDoc Dim oName_DP_Selected As String 'To select a derived (reference) part oName_DPX_Selected = InputListBox("Prompt, oList_DPs_ModelDoc: ", oList_DPs_ModelDoc, oList_DPs_ModelDoc(0), Title := "SELECT DP FROM", ListName := "LIST OF oList_DPs_ModelDoc") xIndex = oList_DPs_ModelDoc.IndexOf(oName_DPX_Selected) Dim oRefDP_ModelDoc_Selected As DerivedPartComponent oRefDP_ModelDoc_Selected = oDwgModelDoc.ComponentDefinition.ReferenceComponents.DerivedPartComponents(xIndex + 1) 'MessageBox.Show("oRefDP_ModelDoc_Selected.Name: " & oRefDP_ModelDoc_Selected.Name, "Title") 'To retrieve parameters from selected derived part Dim oDef_Selected_RefDP_ModelDoc As DerivedPartUniformScaleDef oDef_Selected_RefDP_ModelDoc = oRefDP_ModelDoc_Selected.Definition Dim oDPE_RefDPSelected_ModelDoc As DerivedPartEntity 'For Each oDPE_RefDPSelected_ModelDoc In oDef_Selected_RefDP_ModelDoc.Parameters Dim oList_Params_RefDP_Selected As New ArrayList() For Each oDPE_RefDPSelected_ModelDoc In oDef_Selected_RefDP_ModelDoc.Parameters 'Parameters 'oDef_Selected_RefDP_ModelDoc.Parameters oList_Params_RefDP_Selected.Add(oDPE_RefDPSelected_ModelDoc.ReferencedEntity.Name) Next oDPE_RefDPSelected_ModelDoc Dim oShortList_Params_RefDP_Selected As New ArrayList() 'Short list of paramaters from the derived part selected Do 'To add selected Parameters To list oParam_RefDP_Selected = InputListBox("Prompt", oList_Params_RefDP_Selected, oList_Params_RefDP_Selected(0), Title := "CLICK ''X'' TO CLOSE!", ListName := "Parameters from " & oRefDP_ModelDoc_Selected.Name) If oParam_RefDP_Selected = "" Then Exit Do oShortList_Params_RefDP_Selected.Add(oParam_RefDP_Selected) oIndex = oList_Params_RefDP_Selected.IndexOf(oParam_RefDP_Selected) oList_Params_RefDP_Selected.Remove(oList_Params_RefDP_Selected(oIndex)) Loop While oParam_RefDP_Selected IsNot Nothing If oShortList_Params_RefDP_Selected.Count = 0 Then 'Donothing Else 'to get a display of parameters selected d0 = InputListBox("Prompt", oShortList_Params_RefDP_Selected, oShortList_Params_RefDP_Selected(0), Title := "PARAMETERS", ListName := "PARAMETERS SELECTED") end if 'NOTE" 'REQUEST HELP WITH SOME CODE HERE (OR AS SUITABLE OTHERWISE)TO GET THE SELECTED PARAMETERS ADDEd IN THE MODEL DOCUMENT ' ---- '------ iLogicVb.UpdateWhenDone = True InventorVb.DocumentUpdate() ThisDoc.Save End Function
Solved! Go to Solution.