| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
| Digitaler Zwilling: Vom Trend zur Unternehmensstrategie, ein Webinar am 25.10.2024
|
Autor
|
Thema: Verknüpfung der Teilekopie mit VB trennen (3984 mal gelesen)
|
Merle Mitglied Konstrukteur
Beiträge: 50 Registriert: 01.06.2001 Solid Edge ST5 - 64 Bit/ sequentiell Version 105.00.08.05
|
erstellt am: 12. Apr. 2008 23:09 <-- editieren / zitieren --> Unities abgeben:
|
Jürgen Niesner Mitglied
Beiträge: 505 Registriert: 26.11.2001
|
erstellt am: 22. Apr. 2008 07:55 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
ist zwar VB.NET .... Public Sub abhaengenTeilekopien(ByRef sePart As SolidEdgePart.PartDocument) Dim seConstructions As SolidEdgePart.Constructions = sePart.Constructions Dim seCopyConstructions As SolidEdgePart.CopyConstructions = seConstructions.CopyConstructions Dim lConstNummer As Integer Dim seCopyConstruction As SolidEdgePart.CopyConstruction For lConstNummer = 1 To seCopyConstructions.Count seCopyConstruction = seCopyConstructions.Item(lConstNummer) If seCopyConstruction.IsBroken = False Then seCopyConstruction.BreakLinks() End If RaiseEvent Meldung("Link für Feature """ + seCopyConstruction.Name + """ aufgelöst") Next End Sub Jürgen ------------------ 157*SEV19SR11, 4*SEV20SR03 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Merle Mitglied Konstrukteur
Beiträge: 50 Registriert: 01.06.2001 Solid Edge ST5 - 64 Bit/ sequentiell Version 105.00.08.05
|
erstellt am: 02. Mai. 2008 23:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Jürgen, vielen Dank für deine Antwort. Leider kann ich noch kein VB.Net und ich kämpfe seit deiner Antwort damit das Programm in VB6 umzuschreiben. Aber ich muß zugeben, daß auch dort meine Kenntnisse nicht ganz ausreichen. Könntest Du mir evtl. dabei helfen? Stefan 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: 02. Mai. 2008 23:49 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Moin, dem kann abgeholfen werden: Code:
Public Sub abhaengenTeilekopien(ByRef sePart As SolidEdgePart.PartDocument) Dim seConstructions As SolidEdgePart.Constructions Dim seCopyConstructions As SolidEdgePart.CopyConstructions Dim lConstNummer As Integer Dim seCopyConstruction As SolidEdgePart.CopyConstruction Set seConstructions = objPart.Constructions Set seCopyConstructions = seConstructions.CopyConstructions For lConstNummer = 1 To seCopyConstructions.Count Set seCopyConstruction = seCopyConstructions.Item(lConstNummer) If seCopyConstruction.IsBroken = False Then Call seCopyConstruction.BreakLinks End If MsgBox "Link für Feature """ + seCopyConstruction.Name + """ aufgelöst" Next End Sub
Vorsicht: haengt die Kopie an einem KO-System im aktiven Part wird auch die Verbindung unterbrochen (V20/Sp5) Nachtrag: falls das Part eine Teilekopie als ein DesignedPart beinhaltet dann das gleiche in gruen nur mit for each objTemp in objPart.Models.Item(1).CopiedParts [...] next objTemp ebenfalls durchziehen Klaus ------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn)
[Diese Nachricht wurde von modeng am 03. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Merle Mitglied Konstrukteur
Beiträge: 50 Registriert: 01.06.2001 Solid Edge ST5 - 64 Bit/ sequentiell Version 105.00.08.05
|
erstellt am: 04. Mai. 2008 23:13 <-- editieren / zitieren --> Unities abgeben:
Guten Abend zusammen, ich habe das Programm ausprobiert. Leider fuzzt es nicht ganz so wie ich mir das vorgestellt habe. Da ich das Programm direkt aus dem aktiven Dokument starten will habe ich es ein wenig umgeschrieben. Option Explicit Public Sub main() Dim objApp As SolidEdgeFramework.Application Dim objDoc As SolidEdgePart.PartDocument Dim seConstructions As SolidEdgePart.Constructions Dim seCopyConstructions As SolidEdgePart.CopyConstructions Dim seCopyConstruction As SolidEdgePart.CopyConstruction Dim lConstNummer As Integer Set objApp = GetObject(, "SolidEdge.Application") Set objDoc = objApp.ActiveDocument Set seConstructions = objDoc.Constructions Set seCopyConstructions = seConstructions.CopyConstructions For lConstNummer = 1 To seCopyConstructions.Count Set seCopyConstruction = seCopyConstructions.Item(lConstNummer) If seCopyConstruction.IsBroken = False Then Call seCopyConstruction.BreakLinks End If MsgBox "Link für Feature """ + seCopyConstruction.Name + """ aufgelöst" Next End Sub Bei dem Programm ist Count in der folgenden Zeile = 0. For lConstNummer = 1 To seCopyConstructions.Count Dadurch passiert natürlich nichts. Ich habe einmal einen Anhang angehängt. Mit dem Programm möchte ich die Verknüpfung zu dem Ursprungsteil trennen. Ist das mit dem Programm möglich. Was ist bei mir falsch, damit ich die Verknüpfung unterbreche? Stefan
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: 04. Mai. 2008 23:33 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
das Programm testet nur Teile die als Konstruktionskopien eingefuegt wurden. Ist es aber als Entwurfelement eingefuegt muss die Schleife ueber CopiedParts laufen. Code:
Dim objTemp as Object ' ' design bodies For Each objTemp In objPart.Models.Item(1).CopiedParts [...] [...] Next objTemp ' ' constructions For Each objTemp In objPart.Constructions.CopyConstructions [...] [...] Next objTemp ' ' Interpart constructions For Each objTemp In objPart.Constructions.InterpartConstructions [...] [...] Next objTemp
------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn) [Diese Nachricht wurde von modeng am 06. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Merle Mitglied Konstrukteur
Beiträge: 50 Registriert: 01.06.2001 Solid Edge ST5 - 64 Bit/ sequentiell Version 105.00.08.05
|
erstellt am: 06. Mai. 2008 14:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, mit dem Programm hat es super geklappt, vielen, vielen Dank. Jetzt sitzte ich leider an einem neuen Problem. Die Teile, von denen ich die Verknüpfung löschen will sind aus NX kopiert und haben die Verknüpfung zu einem *.prt Teil. Diese Teile haben wir gelöscht, da es von der Geschwindigkeit nichts ausgemacht hat. Wenn ich manuell die Verknüpfung lösche, ist alles in Ordnung. Wenn ich die Verknüpfung über das Programm lösche, erscheint ein rotes Fragezeichen, da das Mutterteil fehlt. Im Revisionsmanager wird keine Verknüpfung mehr angezeigt. In den Variable steht auch kein Filename mehr. Kann ich diesen Fehler programmtechnisch lösen? Stefan 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: 06. Mai. 2008 15:53 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Moin, in dem fall sollte helfen nach dem ..BreakLinks dies Call <objPart>.Models.Item(1).CopiedParts.Item(1).Update einzufuegen Nachtrag: hilft nicht sofern der Link bereits ins Leere zeigt weil das Teil nicht mehr da ist. Was half (warum?) war nach dem BreakLinks einen Undo/Redo absetzen Call <objApp>.Startcommand(PartEditUndo) '57643 Call <objApp>.Startcommand(PartEditRedo) '57644 ------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn)
[Diese Nachricht wurde von modeng am 06. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Merle Mitglied Konstrukteur
Beiträge: 50 Registriert: 01.06.2001 Solid Edge ST5 - 64 Bit/ sequentiell Version 105.00.08.05
|
erstellt am: 07. Mai. 2008 12:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, hallo Jürgen, ich habe das Programm zum Trennen der Verknüpfungen in eine Batch bzw. in ein Programm, umgeschrieben aus FindBrokenLinks, eingebaut und es werden gerade 2600 Dateien überarbeitet. Es läuft super und ich habe eine Menge Zeit gespart und dank Euch wieder viel dazugelernt. (Die letzten Zeilen, die du mir geschickt hast habe ich überhaupt nicht verstanden !!!) An dieser Stelle noch einmal vielen, vielen Dank. Stefan 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: 07. Mai. 2008 12:43 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Moin, Du wolltest doch die roten Fragezeichen wegbekommen? Wendet man das ... BreakLinks auf einen Link an dessen Part schon nicht mehr vorhanden ist so wird zwar intern der Link geloescht das '?' bleibt aber bestehen. Setzt man nach dem BreakLinks obige Commands inder Reihenfolge Undo/Redo ab verschwindet auch das rote Fragezeichen. Scheint eine Macke in der API zu sein. Klaus ------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Merle Mitglied Konstrukteur
Beiträge: 50 Registriert: 01.06.2001 Solid Edge ST5 - 64 Bit/ sequentiell Version 105.00.08.05
|
erstellt am: 11. Mai. 2008 17:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, ich habe die Befehle in das Programm eingebaut. Erstaunlicher Weise sind trotzdem bei vielen Dokumenten die Fragezeichen stehengeblieben (aber nicht bei allen). Wir haben im Revisionsmanager geprüft, ob noch irgend eine Verknüpfunmg angezeigt wird oder ob noch ein Dokument gesucht wird. Da das nicht der Fall ist, haben wir das Programm durchlaufen lassen und sind mit dem Ergebnis sehr zufrieden. Es ist ein Zusammenbau von einer Verrohrung, bei der wir die Einzelteile nicht weiterverwenden. Das heißt wir müssen keine 2D-Zeichnung machen oä.. Das sieht schon sehr gut aus. Auch FindBrokenLinks meldet keine Fehler mehr. Nochmals vielen Dank. P.S. Wie ich am Freitag gehört habe hast du schon einmal mit meinem Arbeitskollegen Lwr telefoniert. 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: 11. Mai. 2008 17:50 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Moin, [...] Erstaunlicher Weise sind trotzdem bei vielen Dokumenten die Fragezeichen stehengeblieben (aber nicht bei allen). [...] ist wohl ein Fehler in der API: manuell den BreakLinks absetzen ruft gewisse Funktionen auf, die aber so in der API nicht implementiert sind bzw. es ist nicht zu finden ob noch eine weitere Funktion zusaetzlich aufgerufen werden muss. [...] ... hast du schon einmal mit meinem Arbeitskollegen Lwr telefoniert. [...] wuesst ich jetzt nicht ob und wann ... Klaus ------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn) [Diese Nachricht wurde von modeng am 11. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tommes01 Mitglied Konstrukteur
Beiträge: 808 Registriert: 21.02.2003 Solid Edge 2021 MP4 NX 1953
|
erstellt am: 30. Mrz. 2016 07:46 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Wir hatten auch das Problem, dass wir in den Kindern die Verknüpfung zum Mutterteil löschen wollten. Verschiebt man das Teil zu Syncronous werden die Verknüfungen gelöscht. Jetzt die Frage: Kennt jemand ein Makor/Batch, mit dem man mehrere Parts nach Syncronous verschieben kann? So eine Art OpenSave? Gruß Tommes 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: 7467 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 30. Mrz. 2016 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
|
Jürgen Niesner Mitglied
Beiträge: 505 Registriert: 26.11.2001
|
erstellt am: 31. Mrz. 2016 06:30 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
|
Tommes01 Mitglied Konstrukteur
Beiträge: 808 Registriert: 21.02.2003 Solid Edge 2021 MP4 NX 1953
|
erstellt am: 31. Mrz. 2016 08:16 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
|
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7467 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 31. Mrz. 2016 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
|
Zeitbeißer Moderator CAD-Koryphäe
Beiträge: 2646 Registriert: 25.06.2014 Die Computerrevolution ist vorbei - sie haben gewonnen.
|
erstellt am: 31. Mrz. 2016 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Zitat: Original erstellt von Arne Peters: [...] Teilfamilien stehen standarmäßig auf Nein und müssen auf Ja gestellt werden.
Wo ist denn da auf "Ja" umzustellen!? Edit: Um auch Masterteile nach synchron verschieben zu können... ------------------
Nichts ist mächtiger als eine Idee, deren Zeit gekommen ist. Victor Hugo ------------------ 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: 7467 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 31. Mrz. 2016 09:52 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
|
Zeitbeißer Moderator CAD-Koryphäe
Beiträge: 2646 Registriert: 25.06.2014 Die Computerrevolution ist vorbei - sie haben gewonnen.
|
erstellt am: 31. Mrz. 2016 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Zitat: Original erstellt von Arne Peters: Wozu denn Masterteile verschieben?
War nur so eine Idee. Geht nicht, oder?! Edit: Ist Sinnfrei und nicht so wichtig... ------------------
Nichts ist mächtiger als eine Idee, deren Zeit gekommen ist. Victor Hugo ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tommes01 Mitglied Konstrukteur
Beiträge: 808 Registriert: 21.02.2003 Solid Edge 2021 MP4 NX 1953
|
erstellt am: 31. Mrz. 2016 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Bei mir kommt die Meldung "Dies ist ein Standard Parts-Dokument und kann daher nicht nach Synchronous verschoben werden." Das Teil war zwar mal ein Standard-Part, ich habe es jedoch lokal kopiert und ist nicht schreibgeschützt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zeitbeißer Moderator CAD-Koryphäe
Beiträge: 2646 Registriert: 25.06.2014 Die Computerrevolution ist vorbei - sie haben gewonnen.
|
erstellt am: 31. Mrz. 2016 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
Zitat: Original erstellt von Tommes01: Bei mir kommt die Meldung "Dies ist ein Standard Parts-Dokument und kann daher nicht nach Synchronous verschoben werden."Das Teil war zwar mal ein Standard-Part, ich habe es jedoch lokal kopiert und ist nicht schreibgeschützt.
Ist da vielleicht der Haken "Normteil" noch gesetzt bei geöffnetem Teil in den Dateieigenschaften in der Registerkarte "Projekt"?? Edit: Der Haken hat anscheinend keine Auswirkung, zumindest dann nicht wenn man ihn selber setzt und speichert... ------------------
Nichts ist mächtiger als eine Idee, deren Zeit gekommen ist. Victor Hugo ------------------ 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: 7467 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 31. Mrz. 2016 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für Merle
|