Prueda con este codigo usandolo como regla externa y corriendolo en cada engranaje.
Sub main
' Llamar a la función para crear los parámetros y formatos personalizados si no existen
CrearParametroYFormatoSiNoExiste("Diametro_Primitivo")
CrearParametroYFormatoSiNoExiste("Diametro_Exterior")
CrearParametroYFormatoSiNoExiste("Diametro_Raiz")
CrearParametroYFormatoSiNoExiste("Modulo")
CambiarValor
End Sub
Sub CrearParametroYFormatoSiNoExiste(nombreParametro As String)
Dim partDoc As PartDocument = ThisDoc.Document
Dim userParams As UserParameters = partDoc.ComponentDefinition.Parameters.UserParameters
' Verificar si el parámetro ya existe
If Not ExisteParametro(userParams, nombreParametro) Then
Try
Dim newParam As UserParameter = userParams.AddByExpression(nombreParametro, 1, "in")
newParam.ExposedAsProperty = True
Dim cFormat As CustomPropertyFormat = newParam.CustomPropertyFormat
cFormat.PropertyType = CustomPropertyTypeEnum.kTextPropertyType
cFormat.Precision = CustomPropertyPrecisionEnum.kThreeDecimalPlacesPrecision
cFormat.ShowTrailingZeros = False
cFormat.ShowUnitsString = True
Catch
End Try
End If
End Sub
Function ExisteParametro(userParams As UserParameters, nombreParametro As String) As Boolean
' Verificar si el parámetro ya existe
For Each param As UserParameter In userParams
If param.Name = nombreParametro Then
Return True ' El parámetro ya existe
End If
Next
Return False ' El parámetro no existe
End Function
Sub CambiarValor
' Establecer valores para los parámetros
Parameter.Param("Diametro_Primitivo").Expression = Parameter.Param("da_d").Name
Parameter.Param("Diametro_Exterior").Expression = Parameter.Param("da_da").Name
Parameter.Param("Diametro_Raiz").Expression = Parameter.Param("da_df").Name
Parameter("Modulo") = Diametro_Primitivo*25.4/da_z
End Sub
La regla te crea parametros de usuarios( si no existen), a cada parametro le asigna el valor teniendo en cuenta los valores de los parametros del modelo y calcula el modulo.
Ya con esto puedes crear una tabla y añadir las nuevas propiedades creadas, te recomiendo guardar un estilo de tabla con estos valores para que solo sea asigarlo y no ir creandola cada vez que la necesites.
Nota: En el generador de engranajes en la parte superior derecha, dale click al icono que aparece un block de notas, en este reporte verifica que los valores llamadas por la regla coincide con estos.