| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: VB.Net Makro - PathFinder nicht aktualisieren (1649 mal gelesen)
|
Andy313 Mitglied Konstruktöör
Beiträge: 212 Registriert: 10.02.2005 Solid Edge ST10 mit CIM Database (von Contact) Windows 10 64bit Intel Xeon E5-1620 v2 (3.7Ghz) 16 GB RAM / SSD HD
|
erstellt am: 13. Jun. 2016 11:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen ich erstelle gerade ein Makro in VB.Net für Solid Edge ST8. Nun habe ich ein "For Eache" Schleife drin die jedes Teil durchgeht und gewisse Sachen macht. Nun ist das Macro relativ langsam, vorallem bei grösseren Baugruppen. Das Problem wird sein das Solid Edge alles darstellt was während des Makros so gemacht wird. Das 3D Fenster kann man mit "MySE.Application.ScreenUpdating = False" gestoppt werden, damit es während des Makros nicht updated. Das Problem ist jetzt noch der PathFinder. Wisst Ihr da eventuell eine Porperty für den PathFinder oder für die ganze Application? Andy 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: 13. Jun. 2016 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für Andy313
Zitat: Original erstellt von Andy313: [...] Wisst Ihr da eventuell eine Porperty für den PathFinder oder für die ganze Application? [...]
Warum Solid Edge überhaupt sichtbar machen?? -> Evtl. ist es schneller wenn nicht angezeigt... "objApp.Visible = False" So als erste Idee... ------------------
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 |
Andy313 Mitglied Konstruktöör
Beiträge: 212 Registriert: 10.02.2005 Solid Edge ST10 mit CIM Database (von Contact) Windows 10 64bit Intel Xeon E5-1620 v2 (3.7Ghz) 16 GB RAM / SSD HD
|
erstellt am: 13. Jun. 2016 13:46 <-- editieren / zitieren --> Unities abgeben:
Das ist eine gute Idee, bin aber auch schon drauf gekommen. Und irgendwie bringt es nicht viel. Ich muss da wohl etwas genauer werden; ich möchte Teile ein und ausblenden anhand des Pfades und des Namens. Wenn ich 250 Teile einbelnden will geht es mit dem Macro 51.53 Sek. Mit "Visible = True / ScreenUpdating = False": 28.71 Sek. und mit "Visible = False / ScreenUpdating = False": 24.78 Sek. Wenn ich in Solid Edge die Teile von hand auswähle und alle miteinander ausblende geht der vorgang knappe 2 Sek. Also entweder updated er den Pathfinder auch mit "Visible = False" oder das einzelne ausblenden der Teile dauert einfach so lange und ich sollte mit dem "SelectSet" arbeiten. Nur weis ich nicht wie ich ein ganzes SelectSet ohne For Eache Loop ausblenden kann.. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
Beiträge: 453 Registriert: 23.01.2002 Win10 Office 365 SE 2019
|
erstellt am: 13. Jun. 2016 14:07 <-- editieren / zitieren --> Unities abgeben: Nur für Andy313
Zitat: Original erstellt von Andy313: Nur weis ich nicht wie ich ein ganzes SelectSet ohne For Eache Loop ausblenden kann..
Hast Du es mit SelectSet.SuspendDisplay versucht? pablo ------------------ PST => Parametersteuerung für Solid Edge TB Haberl 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: 13. Jun. 2016 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für Andy313
Zitat: Original erstellt von Andy313: [...] Nur weis ich nicht wie ich ein ganzes SelectSet ohne For Eache Loop ausblenden kann..
Occurences.visible=False
------------------
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 |
Andy313 Mitglied Konstruktöör
Beiträge: 212 Registriert: 10.02.2005 Solid Edge ST10 mit CIM Database (von Contact) Windows 10 64bit Intel Xeon E5-1620 v2 (3.7Ghz) 16 GB RAM / SSD HD
|
erstellt am: 13. Jun. 2016 15:11 <-- editieren / zitieren --> Unities abgeben:
Danke für eure Antwort, leider geht es länger die Teile einzeln in ein SelectSet zu tun =( Auch mit Visible=False geht es 1 Min 49 Sek. Das Problem ist das er die Multifunktionsleiste nach jedem selektieren aktualisiert, und die auch anzeigt wen SE nicht sichtbar ist.. Irgendwie sollte es doch möglich sein alle Aktualisierungen für die dauer des Makros zu unterbrechen.. Wie im Excel mit "Application.Screenupdate = False" Falls ich eine Lösung finde werde ich sie hier rein schreiben. Edit: ok nun habe ich eine einigermassen zufriedenstellende Lösung gefunden (325 Teile in 9.9 Sek.): Hier der Code: 'Ausserhalb Sub Public MySE As SolidEdgeFramework.Application, mySedoc As Object, myAssembly As SolidEdgeAssembly.AssemblyDocument 'in Sub MySE = GetObject(, "Solidedge.Application") myAssembly = MySE.ActiveDocument myAssembly.UpdatePathfinder(3) 'seSuspend MySE.Application.ScreenUpdating = False 'tu irgendwas cooles myAssembly.UpdatePathfinder(4) 'seResume MySE.Application.ScreenUpdating = True [Diese Nachricht wurde von Andy313 am 13. Jun. 2016 editiert.] 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: 13. Jun. 2016 18:18 <-- editieren / zitieren --> Unities abgeben: Nur für Andy313
|
Andy313 Mitglied Konstruktöör
Beiträge: 212 Registriert: 10.02.2005 Solid Edge ST10 mit CIM Database (von Contact) Windows 10 64bit Intel Xeon E5-1620 v2 (3.7Ghz) 16 GB RAM / SSD HD
|
erstellt am: 14. Jun. 2016 15:42 <-- editieren / zitieren --> Unities abgeben:
|
Andy313 Mitglied Konstruktöör
Beiträge: 212 Registriert: 10.02.2005 Solid Edge ST10 mit CIM Database (von Contact) Windows 10 64bit Intel Xeon E5-1620 v2 (3.7Ghz) 16 GB RAM / SSD HD
|
erstellt am: 22. Jun. 2016 11:09 <-- editieren / zitieren --> Unities abgeben:
|
Zeitbeißer Moderator CAD-Koryphäe
Beiträge: 2646 Registriert: 25.06.2014 Die Computerrevolution ist vorbei - sie haben gewonnen.
|
erstellt am: 22. Jun. 2016 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Andy313
Zitat: Original erstellt von Andy313: PS: für alle die es interessiert, mit: "MySE.Interactive = False" kann man das ganze SE für User-Eingaben sperren.
Danke für die Info! ------------------
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 |