Manipule los layouts de Factory Design a través de la API.
La API de Factory Design, in-CAD (Interfaz de programación de aplicaciones) está diseñada para permitir el acceso mediante programación a los layouts de Factory Design y manipular dichos layouts. La API está disponible en Inventor y AutoCAD.
La API de Factory Design permite integrar los layouts de Factory con otros sistemas informáticos. Por ejemplo, si tiene una herramienta personalizada que se utiliza para analizar la ergonomía de un flujo de trabajo de ensamblaje de productos, y ajusta las ubicaciones de estación de trabajo o de máquina en función de ello, puede utilizarse la salida de esta herramienta para afectar mediante programación a la ubicación de los componentes en el layout de Factory Design.
Para utilizar esta API, debe tener código .NET ejecutándose en el proceso CAD. Para ejecutar el código en el proceso CAD, cree un módulo de extensión.
Para crear módulos de extensión de CAD con tecnología Microsoft.NET:
Una vez que tiene un módulo de extensión de CAD en funcionamiento, puede hacer referencia a la Autodesk.Factory.PublicAPI.dll que se encuentra en:
C:\Archivos de programa\Autodesk\ApplicationPlugins\FactApplication_R22.0.bundle\Contents\x64\ (AutoCAD) y C:\Archivos de programa\Autodesk\Inventor 2018\Bin\InventorFactory\ (Inventor)
La API in-CAD de Factory Design expone la misma interfaz en Inventor y AutoCAD, y funciona en una presentación a la vez (sin manipulación de layout secundario). Todos los métodos de API aceptan el parámetro de layout, que representa el documento de layout que se ve afectado. En Inventor, es AssemblyDocument y, en AutoCAD, es Autodesk.AutoCAD.DatabaseServices.Database.
La API proporciona cuatro métodos:
Todos los métodos operan en objetos de ejemplares de componentes:
Para obtener el AssetID de un componente, consulte el <ID de familia> en family.xml.
Un ejemplar de componente proporciona los siguientes datos de Factory Design.
AddAssetInstances
Utilice esta API para añadir nuevos ejemplares de componente a un layout. Cada ejemplar debe especificar la posición en la que se colocará el ejemplar, y el componente de biblioteca que se utilizará para construir el ejemplar. Si lo desea, el invocador puede especificar los valores de los parámetros que se utilizarán para construir el ejemplar. Si no se han especificado los parámetros, se utilizan los valores por defecto de la biblioteca.
using APIv2 = Autodesk.Factory.PublicAPI.Objects.v2; … var api = Autodesk.Factory.PublicAPI.API.Instance; APIv2.AssetInstance newInst1 = new APIv2.AssetInstance() { AssetID = "41c84844-7b28-4903-bebd-365ca3a6a53c", //Straight Belt Conveyor Position = new System.Windows.Media.Media3D.Matrix3D() { OffsetX = 0, OffsetY = 0, OffsetZ = 0 }, }; var insts = api.AddAssetInstances(layout, new PublicAPI.Currency.v2.IAssetInstance[] { newInst1 }); System.Windows.MessageBox.Show(insts.Length.ToString(), "Added instances");
GetAssetInstances
var insts = api.GetAssetInstances(layout); System.Windows.MessageBox.Show(insts.Length.ToString(), "Get - COUNT");
UpdateAssetInstances
Esta API se utiliza para cambiar la posición, los parámetros y las propiedades del ejemplar.
var insts = api.GetAssetInstances(layout); foreach (var item in insts) { var position = item.Position; position.OffsetX += 200; item.Position = position; item.Parameters["Length"] = "400"; } insts = api.UpdateAssetInstances(layout, insts); System.Windows.MessageBox.Show("update position done");
DeleteAssetInstances
api.DeleteAssetInstances(layout, new PublicAPI.Currency.v2.IAssetInstance[] { instToDelete });