Hallo ihr alle
Ich suche nach einer Möglichkeit, ein Benutzerformular zu öffnen, wenn ich eine neue Teiledatei öffne.
Ein bisschen wie in Excel mit WorkbookOpen(), aber ich sehe nichts, was wie apartOpen() aussehen würde.
Hat jemand eine Idee
Hallo ihr alle
Ich suche nach einer Möglichkeit, ein Benutzerformular zu öffnen, wenn ich eine neue Teiledatei öffne.
Ein bisschen wie in Excel mit WorkbookOpen(), aber ich sehe nichts, was wie apartOpen() aussehen würde.
Hat jemand eine Idee
Hallo
In diesem Thema wird es behandelt, jedoch besteht die Einschränkung darin, dass es nur für neue Dateien gilt.
VBA-Makro beim Laden des Modells mit der Makrofunktion und der SOLIDWORKS API ausführen (codestack.net)
Eine andere Methode wäre, mit SW-Ereignissen zu spielen, um Informationen zum Öffnen von Dateien zu erfassen, aber dafür müssen Sie die ausführbare SW-Startdatei so ändern, dass sie ein Makro hat, das im Hintergrund ausgeführt wird
Danke @Cyril.f , ja das ist genau das, was ich will, dass es nur beim Erstellen einer neuen Datei läuft, um den Zeichner zu zwingen, ein vordefiniertes Material in einer Combobox des Benutzerformulars auszuwählen.
Wir brauchen es also nur für die Erstellung des neuen Stücks.
Ich werde es studieren, aber der Code sieht auf den ersten Blick ziemlich schwer aus!!
Möglicherweise gibt es eine Möglichkeit, es etwas einfacher zu machen als der von Codestack angebotene Code, ich schaue mir das an, weil ich bereits Codes habe, die SW-Ereignisse verwenden, aber ich schaffe es im Moment nicht, wenn ich SW direkt starte (ich starte SW und ein Makro aus Excel)
Vielen Dank, es ist schön, mir bei diesem speziellen Thema unter die Arme zu greifen.
In der Zwischenzeit werde ich mir den Codestack-Code ansehen.
Ich verstehe nicht, wie man ein Feature-Makro erstellt, anscheinend muss man eine Skizze im Modell öffnen.
Aber ich weiß nicht, was ich als nächstes tun soll.
EDIT: Tut mir leid, ich hätte mir das Video ansehen sollen !!
Nach mehreren Versuchen funktioniert der Codestack-Code für meine Verwendung nicht.
Das Makro wird ausgeführt, bevor die Datei geöffnet wird, und daher kann ich das Material nicht bearbeiten, da der Feature-Manager-Ordner nicht aktiv ist.
Eine andere Idee, um mein Problem zu lösen?
Hallo @treza88
Ich werde die Frage nicht beantworten, sondern ein wenig mehr auf das Problem eingehen. Eine Alternative könnte die Sache anders regeln;
Erstellen von Dokumentvorlagen für neue Dokumente. Mit einer Vorlage für jedes Material und durch Löschen der ursprünglichen Standardvorlage, da es darum geht, die Wahl des Designers zu erzwingen, kann er neue Dokumente nur mit einer der vordefinierten Vorlagen öffnen, also nur mit einem der vordefinierten Materialien. Und das direkt aus dem SW-Öffnungsfenster.
Hallo und danke @Sylk,
Das Problem ist, dass ich damit mindestens dreißig Modelle machen würde, denn mein Material definiert die Art des Materials, aber auch die Dicke meines Blechs, vom Typ " Inox_2.0 ".
Auf diese Weise kann ich diese Informationen für meine DXF-Exporte abrufen.
Auf der anderen Seite habe ich eine Lösung, die zu mir passt und die ziemlich einfach ist, nämlich ein Makro zu erstellen, das ein neues Teil erstellt und nach der Erstellung mein Benutzerformular öffnet.
Oder besser gesagt in dieser Reihenfolge: Ein Makro, das das Benutzerformular öffnet und dann einen neuen Raum mit den im Benutzerformular gewählten Optionen erstellt.
Im Grunde würde ich a priori folgendes tun:
PS: Im Falle falscher Parameter oder des Schließens (Abbrechen) des Benutzerformulars/Makros, des Schließens des Dokuments "in Erstellung " ohne Speichern scheint es notwendig zu sein, Dokumente ohne brauchbare Konfiguration zu vermeiden.
Hallo
Das Problem mit Makros, die nicht autonom gestartet werden, ist, dass sie vom Benutzer abhängig bleiben (ich habe einige sehr nützliche, die Benutzer nicht verwenden und die sie von Zeit zu Zeit daran hindern würden, auf Probleme mit ihren Dateien zu stoßen).
Eine Makrofunktion hätte also die Lösung sein können, aber das Problem bleibt, dass sie in allen Dokumentvorlagen enthalten sein muss.
Der " einfachste " Weg, die Verwendung zu erzwingen, besteht darin, beim Öffnen von SW ein Makro zu starten, das SW-Ereignisse abfängt und es Ihnen somit ermöglicht, das gewünschte Verhalten einzustellen.
Davon abgesehen erfordert diese Lösung, dass Sie die Art und Weise ändern, wie SW gestartet wird, indem Sie Argumente zur Befehlszeile hinzufügen, die SW öffnet, damit das Makro beim Öffnen gestartet wird, und einen sehr robusten Code, um alle Fälle zu überwinden, die auftreten könnten.
Vielleicht einfacher zu verwalten und weniger restriktiv für den Benutzer (manchmal braucht man ein Teil, um eine Idee zu formulieren): Überprüfen Sie bei der Registrierung, ob die Materialien in der Liste enthalten sind, und öffnen Sie gegebenenfalls das Benutzerformular.
Mit einem Add-In können Sie Solidworks Ereignisse abfangen, Sie müssen es nur auf allen Arbeitsplätzen installieren.
Ich persönlich finde es überraschend, die Dicke in das Material einzuarbeiten.
Es gibt andere Möglichkeiten, diese Dicke automatisch abzurufen. (genau wie das Material)
Beispiel, das im Raum und dann im MEP notiert wurde:
Im Zimmer:
" Epaisseur@Pièce1.SLDPRT "
Im MEP:
Dicke $PRPSHEET: " Dicke " mm
Das Ergebnis:
=> Großer Seufzer ... Trotzdem fühle ich mich plötzlich weniger alleine...
Um die Frage von @treza88 zu beantworten:
Ich bin generell gegen " Makrofunktionen " es ist oft schwer (für die Größe der Datei), sie sind kompliziert zu teilen (insbesondere mit externen Personen, die nicht die gleiche Version von Solidworks haben oder einfach administrative Einschränkungen auf ihrem Arbeitsplatz haben)...
Um all dies zu vermeiden, gilt je nach verwendeter Solidworks-Version (ab Solidworks 2019):
schauen Sie sich beim Bearbeiten von Materialien die Registerkarte " Blech" an... Ich denke, das beantwortet Ihre Anfrage:
Nun, vielleicht übertreibe ich es ein wenig, denn wie Sie sehen können, benutze ich es nicht... (Solidworks 2022).
@treza88 ... Ich bin keineswegs gegen die Vermehrung von Informationsquellen (ganz im Gegenteil), nur wäre es fair, die Ergebnisse (im Falle einer Lösung) in den verschiedenen Foren zu veröffentlichen, in denen Sie Ihre Anfragen gestellt haben:
Folgender Screenshot des Solidworks Forums
Herzliche Grüße.
Die Antwort des SW-Forums löst nicht das Problem " es ist benutzerabhängig".
Das Erstellen eines Makros, das ein Benutzerformular startet, und das Erstellen einer Datei ist einfach, aber die Benutzer müssen sich immer noch dazu herablassen, auf das Symbol zu klicken.
@Cyril.f , genau die Bemerkung, die ich mir selbst gemacht habe.
Die von @sbadenis vorgeschlagene Lösung scheint mir interessant zu sein (abgesehen von der Tatsache, dass die Zeichnung ein großartiger Mittelfinger zu sein scheint)
Persönlich ist es das, was wir verwenden. Wenn das Material nicht ausgefüllt ist, beleidigt uns Sldw wegen der Zeichnung, was das Auge alarmiert
Sie können auch mit visuellen Hinweisen verschönern. Alles, was vom Benutzer überprüft werden muss, wird in Ihrer nativen Datei standardmäßig auf Rot gesetzt. Und der Benutzer gibt sie in Schwarz weiter, um die Tatsache zu bestätigen, dass er überprüft hat.
Auch wenn wir die Elemente rot und fett geschrieben haben, springt es niemandem ins Auge. Ich muss blinde Menschen in meinen Benutzern haben
[HS Ein] Das einzige Mal, dass wir ein Ergebnis erhielten, war bei Dateien in unserem PDM, die sich in einem Papierkorb befinden, wenn die Baugruppen auf sie zeigen, haben wir das 3D durch einen extrudierten Text vom Typ " Dies ist nicht die richtige Datei " ersetzt. Da sie Probleme mit dem " get the version " und nicht " get the latest version " haben, endeten sie seltsamerweise mit einem ASM mit schönen Texten und Constraint-Fehlern und dort reagierte [HS Off]