| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: Füllen der Dateieigenschaften-Benutzerdefiniert (2174 mal gelesen)
|
Zordan_Zumbel Mitglied Konstrukteur
Beiträge: 118 Registriert: 01.02.2006 Win XP - SE V17/SP13 Smarteam und Solidmanager V18
|
erstellt am: 03. Jul. 2006 11:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe da ein Problem: Beim Explorer kann man unter Dateieigenschaft-Benutzerdefiniert Variablen definieren und Werte zuweisen. Diese Werte sind dann auch in SE verfügbar. Nun haben wir einen größeren Datenbestand an SE-Files in der Datenbank. Hier sollen nachträglich die Felder aus der Datenbank in die SE-Dateien eingepflegt werden, und zwar in die besagten Felder unter Dateieigenschaft. Da ganze natürlich automatisch und ohne Versionswechsel der Dateien (geht alles mit Administratorrechten). Aktuell wollen wir das Problem mit C# lösen, allerdings finden wir die entsprechenden Funktionen nicht.... die für´s setzten der Archiv/Read-only/Hidden etc ist bekannt aber die anderen???? Hat da schon mal jemand programmiert oder gibt es andere Vorschläge wie dieses Problem zu lösen ist? Danke für eure Antworten Zordan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rulfman Mitglied IT-Manager / CAD-Administrator
Beiträge: 85 Registriert: 22.06.2004
|
erstellt am: 03. Jul. 2006 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
@Zordan_Zumbel ich habe zwar noch nichts in C# programmiert, jedoch kann ich Dir den Source-Code für VB geben. Ich denke bei C# müsste es so ähnlich sein For i = 1 To oDoc.Properties("Custom").Count If oDoc.Properties("Custom").Item(i).Name = "PROCAD.20" Then vPFDensity = Val(oDoc.Properties("Custom").Item(i).Value) End If If oDoc.Properties("Custom").Item(i).Name = "PROCAD.9" Then vPFMass = Val(oDoc.Properties("Custom").Item(i).Value) End If Next (Auslese-Prozedur) Für Speicher-Prozedur einfach umkehren.
------------------ Gruß Ralf _______________________________ * Printed on 100% recycled electrons * Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zordan_Zumbel Mitglied Konstrukteur
Beiträge: 118 Registriert: 01.02.2006 Win XP - SE V17/SP13 Smarteam und Solidmanager V18
|
erstellt am: 03. Jul. 2006 11:57 <-- editieren / zitieren --> Unities abgeben:
@rulfman das sieht schon gut aus, aber wie ist denn "oDoc" definiert? Und wie wird der File-Name übergeben? Danke. PS: Ich programier nicht selber sondern helfe nur bei der Informationsbeschaffung. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rulfman Mitglied IT-Manager / CAD-Administrator
Beiträge: 85 Registriert: 22.06.2004
|
erstellt am: 03. Jul. 2006 12:09 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
@Zordan_Zumbel oDoc Dim oDoc As SolidEdge.Part.Interop.PartDocument oDoc = oApp.ActiveDocument Filename müsste dann sein:
oDoc.Name (aktives Dokument)
------------------ Gruß Ralf _______________________________ * Printed on 100% recycled electrons * Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 03. Jul. 2006 12:36 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
Moin, einmal im Zusammenhang; Dim mApp As SolidEdgeFramework.Application Dim mPart As PartDocument Dim objProps As SolidEdgeFramework.PropertySets Dim objProp As Object Dim objItem As Object Dim vFeld As Variant Dim lWert As Long Set mApp = GetObject(, "SolidEdge.Application") Set mPart = mApp.ActiveDocument
Set objProps = mPart.Properties Set objProp = objProps.Item("Custom") ' ' auslesen For Each objItem In objProp MsgBox objItem.Name & " - " & objItem.Value Next ' ' pruefen On Error Resume Next vFeld = objProp.Item("Variable1").Value If Err.Number <> 0 Then MsgBox "not found" & Err.Description Err.Clear Else MsgBox vFeld End If ' ' hinzufuegen/update lWert = 22 Call objProp.Add("Name", lWert) ' der typ des wertes bestimmt
------------------ And then one wonders why a man/woman ages so fast in this nutty business Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zordan_Zumbel Mitglied Konstrukteur
Beiträge: 118 Registriert: 01.02.2006 Win XP - SE V17/SP13 Smarteam und Solidmanager V18
|
erstellt am: 03. Jul. 2006 12:50 <-- editieren / zitieren --> Unities abgeben:
|
Marco Kreutz Mitglied
Beiträge: 640 Registriert: 11.02.2003 SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2 VB 6.0 / VB.NET / C#.NET Windows 10 64bit
|
erstellt am: 03. Jul. 2006 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
Hallo, die obengenannte C# - VB Variante setzt allerdings vorraus, dass das Dokument in SolidEdge geöffnent ist. Wenn nun aber ein Batchlauf gestartet werden soll - mit mehreren Hunderte/Tausende Dokumente dann ist das keine performante und vorallem eine stabile Lösung. Die Bentutzerdefinierten Dateieigenschaften müssen auf Betriebssystemebene aktualisisert werden. ------------------ Marco Kreutz info[@]hitteam.de http://www.hitteam.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matthias Leemann Mitglied Masch. Ing HTL
Beiträge: 393 Registriert: 03.10.2003 Windows 11 Pro Solid Edge 2022
|
erstellt am: 03. Jul. 2006 13:59 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
|
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 03. Jul. 2006 14:31 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
@Marco, [...] Die Bentutzerdefinierten Dateieigenschaften müssen auf Betriebssystemebene aktualisisert werden. [...] das glaube ich nicht. Ausserdem war die Eingangsfrage wo sich diese Eigenschaften in SE befinden. Das Prinzipelle wurde gesagt -- fertige Kochbuecher werden nicht geliefert ;-) Fuer Batch geht das natuerlich ueber den SolidEdge.FileProperties Client, damit nicht jede Datei mit Open/Close/save bearbeitet wird. modeng
------------------ And then one wonders why a man/woman ages so fast in this nutty business Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marco Kreutz Mitglied
Beiträge: 640 Registriert: 11.02.2003 SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2 VB 6.0 / VB.NET / C#.NET Windows 10 64bit
|
erstellt am: 03. Jul. 2006 16:52 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
Hallo mondeng, natürlich kannst du die Dateieigenschaften jeder beliebigen Datei auslesen und ggfls. modifizieren oder neue hinzufügen und dies alles per Code ohne SolidEdge Objecte. Vorraussetzung dafür ist allerding, das diese Datei auch die Benutzerdefinierte Dateieigenschaft unterstützt - dies ist bei SolidEdge gegeben. Dies praktizieren wir schon längere Zeit mit Hitteam Connect und Hitteam Explorer Extension. ------------------ Marco Kreutz http://www.hitteam.de [Diese Nachricht wurde von Marco Kreutz am 03. Jul. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 03. Jul. 2006 18:04 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
@Marco, schoen und gut nur die Betonung im Beitrag hiess; [...] Die Bentutzerdefinierten Dateieigenschaften müssen ... [...] und muessen muessen sie nicht, es sei denn sie muessen mal muessen ;-)) modeng
------------------ And then one wonders why a man/woman ages so fast in this nutty business Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marco Kreutz Mitglied
Beiträge: 640 Registriert: 11.02.2003 SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2 VB 6.0 / VB.NET / C#.NET Windows 10 64bit
|
erstellt am: 03. Jul. 2006 20:59 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
|
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 03. Jul. 2006 21:17 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
@Marco, also entschuldigen brauchst Du Dich deswegen nicht -- das sehen wir nicht so verbissen. ich denke aber das die SE Klasse <...PropertySets> auch nicht unsicher ist, ist sie doch das Interface zur den entspr. Win-Funktionen und geht ohne aktives SE und laesst sich bei einiger Umsicht auch fuer Nicht-SE Dateien gebrauchen ... modeng [Diese Nachricht wurde von modeng am 03. Jul. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Billy_Boy Mitglied Konstruktion
Beiträge: 58 Registriert: 21.07.2005
|
erstellt am: 05. Jul. 2006 17:33 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
|
Freki Mitglied CAD/ PDM Administrator
Beiträge: 64 Registriert: 26.07.2004
|
erstellt am: 06. Jul. 2006 08:15 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
|
Zordan_Zumbel Mitglied Konstrukteur
Beiträge: 118 Registriert: 01.02.2006 Win XP - SE V17/SP13 Smarteam und Solidmanager V18
|
erstellt am: 06. Jul. 2006 09:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, @freki: das mit der Datenbank ist ja das Problem. Hintergrund: Wir wollen auf der Draft Stücklisten von SE erstellen lassen. Dazu verwendet SE die Benutzerdefinierten Felder. Diese sollen/müssen mit den Daten aus der Dantenbank gefüllt sein, schliesslich will man ja nicht alles doppelt von Hand eintragen (Fehler etc). Bei neu erstellten Teilen klappt das auch, aber die Altlasten....... Hier müssten zur Zeit alle Daten von Hand entnommen werden, und neu abgespeichert werden, erst alle Einzelteile, dann alle Assemblies. Durch die dabei anfallenden Versionierung müssen auch noch alle Drafts angepackt werden. Bei rund 10td Teilen Hier würde nun das Programm zum Einsatz kommen: Die Dateien können als Admin ohne Versionswechsel bearbeitet werden, die Daten können aus der Datenbank ausgelesen werden (Sql-Abfrage) und dann in die Datei eingetragen werden und zurück in den "Tresor" der Datenbank. Die ASM´ beschweren sich dann zwar trotzdem, daß sich Einzelteile geändert haben, aber das ist nicht "so wild". Da wir das ganze in C# programieren wollen hat sich inzwischen herausgestellt, daß die zuständige DLL nicht mit der von VB übereinstimmt, d.h. es fehlt eine wichtige Funktion. Das ist inzwischen als Call ruckzuck bis zu UGS USA und dort weiter zur zuständigen Entwicklungsabteilung gewandert... (mit der Hoffnung auf baldige Besserung)
Wenn es neues gibt melde ich mich wieder.. Gruß Zordan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 06. Jul. 2006 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
Die Aktualiserung der Dateieigenschaften ohne öffnen der Datei läuft problemlos und stabil. Ich hab das für Kunden auch bereits gemacht und es läuft über tausende von Dateien. Allerding in VB. Läuft aber auch gut. Allerdings hilft Euch eine Exe dazu nichts, da Ihr ja wahrscheinlich spezielle Anforderungen habt. Dann müsste man so ein Programm auch anpassen. Es ist kein riesiger Auwfwand, aber wird ohne Programmierung wohl nicht gehen. Viele Grüße ------------------ APeters@BSS-Online.de [Diese Nachricht wurde von Arne Peters am 06. Jul. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marco Kreutz Mitglied
Beiträge: 640 Registriert: 11.02.2003 SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2 VB 6.0 / VB.NET / C#.NET Windows 10 64bit
|
erstellt am: 06. Jul. 2006 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
|
Zordan_Zumbel Mitglied Konstrukteur
Beiträge: 118 Registriert: 01.02.2006 Win XP - SE V17/SP13 Smarteam und Solidmanager V18
|
erstellt am: 06. Jul. 2006 12:03 <-- editieren / zitieren --> Unities abgeben:
|
Marco Kreutz Mitglied
Beiträge: 640 Registriert: 11.02.2003 SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2 VB 6.0 / VB.NET / C#.NET Windows 10 64bit
|
erstellt am: 06. Jul. 2006 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für Zordan_Zumbel
|