Hallo zusammen,
ich habe vor (hoffe zumindest das sowas möglich ist), die Dateieingeschafte (Titel, Thema usw.) über API ausfüllen zu lassen. Allerdings sind meine bisherigen Versuche größtenteils gescheitert .
Zur Vorgeschichte: Es sollen Baugruppen importiert werden, welche in Solidworks erstellt worden sind. Da dabei keine Metadaten mitkommen, die Eigenschaften aber auch nicht händig eingetippt werden sollen, habe ich mir ein Programm in C# geschrieben. Nun bin ich, was das Programmieren angeht, eher ein Laie und hoffe hier auf ein wenig Unterstützung
Das ist mein bisheriges Programm:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace Properties_Import
{
class Program
{
static void Main(string[] args)
{
SolidEdgeFramework.Application application = null;
SolidEdgeFramework.SolidEdgeDocument document = null;
SolidEdgeFramework.PropertySets propertySets = null;
SolidEdgeFramework.Properties properties = null;
SolidEdgeFramework.Property property = null;
try
{
application = (SolidEdgeFramework.Application)
Marshal.GetActiveObject("SolidEdge.Application");
document = (SolidEdgeFramework.SolidEdgeDocument)
application.ActiveDocument;
propertySets = (SolidEdgeFramework.PropertySets)document.Properties;
// CUSTOM
properties = propertySets.Item("Custom");
property = properties.Add("Properties-Import", DateTime.Now);
// INFO
properties = propertySets.Item("SummaryInformation");
property = properties.Add("Titel", "Testtitel");
property = properties.Add("Thema", "00x00x00");
property = properties.Add("Stichwörter", "gratfrei");
property = properties.Add("Autor", "Testautor");
property = properties.Add("Kommentare", "blabla");
properties = propertySets.Item("DocumentSummaryInformation");
property = properties.Add("Kategorie", "Testkategorie");
// PROJEKT
properties = propertySets.Item("ProjectInformation");
property = properties.Add("Document Number", "00-00-0000");
// MATERIAL ZUORDNEN
properties = propertySets.Item("MechanicalModeling");
property = properties.Add("Material", "Aluminium");
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (property != null)
{
Marshal.ReleaseComObject(property);
property = null;
}
if (properties != null)
{
Marshal.ReleaseComObject(properties);
properties = null;
}
if (propertySets != null)
{
Marshal.ReleaseComObject(propertySets);
propertySets = null;
}
if (document != null)
{
Marshal.ReleaseComObject(document);
document = null;
}
if (application != null)
{
Marshal.ReleaseComObject(application);
application = null;
}
}
}
}
}
Einzig bei "Custom" wird eine Eigenschaft vergeben, beim Rest leider nicht, sprich, bei Titel, Thema, Autor, Document Number wird kein Wert gesetzt. Woran kann das liegen? Können diese Eigenschaft überhaupt von Außerhalb geändert werden? Zukünftig sollen die Eigenschaften aus einer Excel-Tabelle ausgelesen und den einzelnen Parts zugeordnet werden.
Ich hoffe, mir kann dabei jemand eine Tip geben, woran es liegt. Im Voraus schon vielen Dank!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP