| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Schmucker Sound am Ohr: NOVA Audio Ohrringe |
Autor
|
Thema: Hab da was für Euch (1745 mal gelesen)
|
Abele Mitglied
Beiträge: 71 Registriert: 09.06.2004 SWX2007 / SP1
|
erstellt am: 12. Jul. 2007 14:24 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie manche bereits mitbekommen haben, mache ich gerade meine ersten Gehversuche mit Solid Works. Nun ist mein erstes VBA-Tool anwendbar und ich dachte ich enthalte es Euch nicht vor. Wenn ich in SWX ein Feature unterdrücke, dann unterdrückt er ja auch die Features die auf selbiges basieren. (Kinder) Hebe ich die Unterdückung auf, so hebt er diese nur bei dem angewählten Teil auf und die Kinder bleiben unterdrückt. Das hat mich ordentlich genervt und so habe ich Abhilfe geschaffen. Vielleicht gibt es in SWX diese Funktion ja, aber ich hab nix gefunden. Sollte es diese Funktion nicht geben und Ihr hättet auch gern die Möglichkeit beim ausgewählten Feature UND seinen Kindern die Unterdrückung in einem Zug aufzuheben, so könnt Ihr gerne mal mein Tool testen und bei Gefallen verwenden. Haftung übernehme ich natürlich keine. So funktionierts: Unterdrücktes Feature im Feature Baum anklicken, Makro starten schon gehts los. Das Tool sagt Euch dann noch genau welche Unterdrückungen aufgehoben wurden. Bei Features die ### im Namen haben wird die Unterdrückung nicht aufgehoben. Das habe ich eingebaut um es zu ermöglichen dass bestimmte Teile bei Ausführung des Makros ignoriert werden. Sind Features im Featurebaum die nicht eingeblendet werden sollen, einfach in den Namen ein ### und schon werden sie ignoriert. Für eine Schaltfläche hab ich auch gleich ein bmp angehängt. Hoffe Ihr habt Verwendung für das Tool. Viele Grüße Ralph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 12. Jul. 2007 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
Hallo Ralph, eine recht nützlich Funktion. Wüsste jetzt persönlich auch nicht ob dies mit SolidWorks bereits möglich ist. Ich habe zumindest in 2006 und 2007 auf die Schnelle nichts gefunden. Jedoch solltest du in der Zeile Set CurModelDoc = swApp.ActiveDoc() Die Klammern weg machen, sonst kommt es zu einem Laufzeitfehler. So gehts: Set CurModelDoc = swApp.ActiveDoc Anmerkung: Deklariere die SolidWorks Objekte richtig, in deinem Fall die Variablen Dim swApp As SldWorks.SldWorks Dim SelectionMgr As sldworks.SelectionMgr und nicht als Object. Bei den meisten SolidWorks Objekten hast du es ja schon gemacht. Damit lassen sich auch solche Fehler wie mit der Klammer leichter vermeiden, da durch das IntelliSense der VBA-Entwicklungsumgebung die Methodennamen vorgeschlagen werden.
------------------ Mfg Daniel Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht ------------------ SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wildcad Mitglied Konstrukteur
Beiträge: 469 Registriert: 13.01.2005 Core 2 Duo E8600 8 Gb RAM Quadro FX3500 Win PRO x64 SP2 SWX 2006 SP 5.1 SWX 2007 SP 5.0 SWX 2008 SP 5.0 Office 2003
|
erstellt am: 12. Jul. 2007 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
|
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 12. Jul. 2007 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
Ich habe mich mal ein bisschen mit diesem Thema beschäftigt, da ich es schon recht interessant finde. Wenn man auf die Möglichkeit verzichten kann bestimmte Kindfeatures auszuschließen, wie es Ralph durch "###" getan hat kann man diese Aufgabe durch einen einzigen API Befehl erledigen. Denn im Gegensatz zu SolidWorks, bietet die API einen schaltet alla "Alle Kinder berücksichtigen". Hier die Funktion:
Code:
Sub Unterdrueckung_aufheben() Dim oSwApp As SldWorks.SldWorks Dim bStatus As Boolean Dim oSwModelDoc As SldWorks.ModelDoc2 Dim oSwFeature As SldWorks.Feature Dim oSwSelectionMgr As SldWorks.SelectionMgr On Error GoTo Errhandle Set oSwApp = Application.SldWorks Set oSwModelDoc = oSwApp.ActiveDoc Set oSwSelectionMgr = oSwModelDoc.SelectionManager If oSwSelectionMgr.GetSelectedObjectCount = 1 Then If oSwSelectionMgr.GetSelectedObjectType2(1) = _ SwConst.swSelBODYFEATURES Then Set oSwFeature = oSwSelectionMgr.GetSelectedObject5(1) bStatus = oSwFeature.SetSuppression2( _ SwConst.swUnSuppressDependent, _ SwConst.swAllConfiguration, Nothing) End If End If Exit Sub Errhandle: MsgBox "Bei der Ausführung kam es zu einem Fehler. Aktion abgebrochen", vbCritical, "Fehler" End Sub
Die Zeile
Code: bStatus = oSwFeature.SetSuppression2( _ SwConst.swUnSuppressDependent, _ SwConst.swAllConfiguration, Nothing)
ist die entscheidente. Durch den Parameter suppressionState kann man mit Hilfe der swconst Konstanten swUnSuppressDependent alle Kinder aus der Unterdrückung holen.Diese Funktion wäre etwas für unser Tool SDA-4Free. Mit Hilfe des Add-Ins einen Eintrag in das Kontextmenü des FeatureBaums hinzufügen und schon wäre diese Funktion bequem in SolidWorks verfüg und erreichbar.
------------------ Mfg Daniel Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht ------------------ SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rOb. Mitglied Konstrukteur
Beiträge: 514 Registriert: 05.02.2003
|
erstellt am: 12. Jul. 2007 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
|
Piet Mitglied Konstruktionsleiter & Konstrukteur
Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 12. Jul. 2007 16:06 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
Nicht, dass ich euch ärgern will, aber diese Funktion gibt es in SWX mindestens seit Version 2001, denke ich. Wie man es über die Menüs findet, weiß ich auch nicht, aber ich hab seit eh und jeh einen Button dafür in meiner Featuresymbolleiste. Piet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wildcad Mitglied Konstrukteur
Beiträge: 469 Registriert: 13.01.2005 Core 2 Duo E8600 8 Gb RAM Quadro FX3500 Win PRO x64 SP2 SWX 2006 SP 5.1 SWX 2007 SP 5.0 SWX 2008 SP 5.0 Office 2003
|
erstellt am: 12. Jul. 2007 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
|
Cummins Mitglied Konstrukteur
Beiträge: 15 Registriert: 12.02.2005 SolidWorks 2005 SP4.0
|
erstellt am: 12. Jul. 2007 16:52 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
Zitat: Original erstellt von Piet: .... Wie man es über die Menüs findet, weiß ich auch nicht, aber ich hab seit eh und jeh einen Button dafür in meiner Featuresymbolleiste.Piet
RMT in der Befehlsleiste / Anpassen / Befehle / Features ------------------ Gruß Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rOb. Mitglied Konstrukteur
Beiträge: 514 Registriert: 05.02.2003
|
erstellt am: 12. Jul. 2007 16:56 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
Noch was. Es sieht so aus, als lassen sich übers Menü auch die Konfigurationen steuern, wärend man mit dem Button nur die aktuelle Konfiguration beeinflusst. Ich brauchs sehr selten, da ich nicht so der Unterdrücker bin, auch wenn mir die armen unterdrückten Kinder so leid tun :-D @Abele trotdem sehr nett von dir deine Gehversuche gleich anderen zur Verfügung zu stellen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 12. Jul. 2007 17:05 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
|
Abele Mitglied
Beiträge: 71 Registriert: 09.06.2004 SWX2007 / SP1
|
erstellt am: 13. Jul. 2007 08:27 <-- editieren / zitieren --> Unities abgeben:
Eigentlich schade. Aber vielleicht kann der Eine oder Andere das Tool brauchen wegen der ###-Funktion, dass kann die SWX und die API ja anscheinend nicht. lol Viele Grüße Ralph [Diese Nachricht wurde von Abele am 13. Jul. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 13. Jul. 2007 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
Hallo Ralph, nicht traurig sein, sondern stolz. Ich finde das super, dass du dich da mit Hilfe des Forums und der Leute drum gekümmert hast, dich in die API eingearbeitet hast, konstruktive Fragen und Antworten gestellt hast und dann dein Ergebnis hier mit den anderen teilst. Chapeau, wenn nur alle so wären. Selbst wenn es diese Funktion schon gibt ist es ein gutes Lehrstück. Wieder ein öffentlich zugängliches Beispiel mehr, bei dem man sich ggf. etwas abschauen oder drauß lernen kann Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Member of CAD.de BOINC Team - | Seti@Home | CPDN | Einstein@Home Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Baumjäger Mitglied CAD/PDM Administrator
Beiträge: 339 Registriert: 21.06.2006 SW2017 - S5.0 AutoCAD Mechanical 2018 Win10 Intel Xeon E3-1240 V2 3,4GHz 16GB RAM NVIDIA Quadro 4000
|
erstellt am: 29. Okt. 2008 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für Abele
Hallo zusammen, Ich habe das Makro mal ein bisschen erweitert um es als Shortcut nutzen zu können. so kann es jetzt (nach auswahl eines Features) entweder unterdrücken oder eben "mit Kindern unterdrückung aufheben", je nachdem ob das Feature unterdrückt ist oder nicht. Hoffe sowas gibt es nicht schon.. Danke an Daniel für die Steilvorlage.... viele Grüße Andy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |