Hola,
Tu problema es aquel que sufrimos todos los que usamos el KBE para la automatización del diseño.
Lo primero que debes tener en cuenta es que un PC o una UDF es una entidad que copia unas features cuyas entradas (Inputs) debes elegir previamente. Para solventar el problema de las orientaciones existen varios métodos.
1- Exige en el modelo de destino que las orientaciones de la geometría en la que se basará la instanciación sea la misma que la de tus Inputs definidos en el modelo del PC. Esto es lo más rápido y fiable.
2- Adaptate a las orientaciones de tus Inputs. Esta solución es la más elegante pero da más trabajo. La idea es que las orientaciones de tus Inputs se adapten automáticamente a las necesidades del PC.
2.1- Como te ha comentado el compañero, incluye una feature Invert en el PC por cada Input as controlar. Esto duplica la geometría pero con un VBScript y una Rección del módulo de Knowledgeware podrás controlar automáticamente la orientación del Invert. Puedes que necesites geometría extra en casos complejos. Recuerda que los Outputs del PC basarían su creación en estos Inverts.
Ejemplo:
VBScript:
Variables (gInvert, gValue)
Code (
Main
gInvert.Orientation=gValue
End Sub
)
Reaction:
Parameter(Boolean)
Code(
if parameter==true
{
`Relations\VB Scripts.1\VB Script.1` ->Run(`Geometrical Set.1\Inverse.1` ,-1)
}
else
{
`Relations\VB Scripts.1\VB Script.1` ->Run(`Geometrical Set.1\Inverse.1` ,1)
}
)
2.2- Otra forma de actuar sobre las orientaciones es modificando la definición en el proceso de la creación o modificación de las entidades: Por ejemplo, si haces un Extrude de una curva, este tiene una oriención (Normal) determinada, si en el proceso de creación o modificación (podría ser un input de tu PC), inviertes la dirección (Botón "Reverse Direction"), la normal cambiará. La idea es que mediante KBE hagas esto de forma automática cuando instancies tu PC.
De este tema se podría hacer un canal en el foro explicando toda clase de métodos para conseguir evitar estos problemas.
Un saludo.