| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | SOLIDWORKS 3D CAD Grundlagen E-Learning , ein Kurs
|
Autor
|
Thema: API: Keine externen Referenzen (1261 / mal gelesen)
|
NeulingD21 Mitglied Konstrukteur

 Beiträge: 13 Registriert: 03.02.2021 SolidWorks 2018; API-Programmierung; Kante übernehmen
|
erstellt am: 03. Feb. 2021 08:34 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen euch allen, ich bin neu in diesem Forum und hoffe, dass Ihr mir weiterhelfen könnt. Ich habe mir ein Makro erstellt, welches soweit auch gut läuft. Wenn ich dieses Makro in meiner Baugruppe starte, dann wird ein Bauteil in der Baugruppe mit "Komponente bearbeiten" bearbeitet. Anschließend wird ein anders Bauteil mit dem Feature "Formnest" davon "abgezogen". Wenn ich nun aber nicht aufpasse, dann erstellt Solidworks eine externe Referenz im "bearbeiteten Bauteil". Ich will nun eigentlich noch eine kurze Abfrage in mein Makro aufnehmen, sodass geprüft wird ob die Funktion "Keine externen Referenzen" im Bauteil aktiviert ist (siehe Anhang). Wie kann ich das machen? Bin bisher weder in der API-Hilfe noch per Google fündig geworden.
Vielen Dank euch schon vorab. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Tide Ehrenmitglied V.I.P. h.c. -

 Beiträge: 5028 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 03. Feb. 2021 08:51 <-- editieren / zitieren --> Unities abgeben:          Nur für NeulingD21
Hallo Neuling21, willkommen im Forum  Bei mir hat der Makrorekorder folgendes aufgezeichnet: Code: Dim swApp As ObjectDim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Set swApp = _ Application.SldWorks Set Part = swApp.ActiveDoc swApp.SetUserPreferenceToggle swUserPreferenceToggle_e.swExternalReferencesDisable, True boolstatus = Part.EditRebuild3() swApp.SetUserPreferenceToggle swUserPreferenceToggle_e.swExternalReferencesDisable, False End Sub
Dazu hab ich in einem geöffneten Teil die Systemoption (  keine Dokumenteigenschaft!) zuerst abgeschaltet, einen Rebuild gemacht (damit ich sehe, dass überhaupt was aufgezeichnet wird), die Systemoption wieder eingeschaltet und die Aufzeichnung beendet... HTH Ralf ------------------
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NeulingD21 Mitglied Konstrukteur

 Beiträge: 13 Registriert: 03.02.2021 SolidWorks 2018; API-Programmierung; Kante übernehmen
|
erstellt am: 03. Feb. 2021 09:44 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen Ralf Tide, vielen Dank für deine Hilfe. Ich hätte dann aber noch zwei Fragen: 1.) Was ist mit "keine Dokumenteigenschaft" abschalten gemeint? Ich habe dies nicht gefunden. Wenn ich ein Makro aufzeichne und Rebuild drücke (also Neuaufbau) wird in dem Makro-Aufzeichnung nur der Neuaufbau (boolstatus = Part.EditRebuild3()) gespeichert. 2.) Zum Verständnis: Kann ich irgendwie auch abfragen ob "Keine externen Referenzen" bereits True ist? Wenn ja wie. Danke schon jetzt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
    
 Beiträge: 1505 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 03. Feb. 2021 10:29 <-- editieren / zitieren --> Unities abgeben:          Nur für NeulingD21
|
Ralf Tide Ehrenmitglied V.I.P. h.c. -

 Beiträge: 5028 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 03. Feb. 2021 11:36 <-- editieren / zitieren --> Unities abgeben:          Nur für NeulingD21
|
NeulingD21 Mitglied Konstrukteur

 Beiträge: 13 Registriert: 03.02.2021 SolidWorks 2018; API-Programmierung; Kante übernehmen
|
erstellt am: 03. Feb. 2021 12:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo, vielen Dank für die super Antworten. Wenn ich nochmal etwas nachhacken darf (@Ralf Tide). Wurde der Befehl dann direkt mit Marko-Aufzeichnen mit aufgezeichnet oder muss ich hier vorab noch etwas einstellen? Ich frag nur so interessiert, da ich eventuell einmal den Befehl für eine Systemoption "finden" muss. Momentan scheint es das nicht aufzuzeichnen. Oder liegt das an der Solidworks-Version, sodass dies bei einer neueren Version mit aufgezeichnet wird? Gruß Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Ralf Tide Ehrenmitglied V.I.P. h.c. -

 Beiträge: 5028 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 03. Feb. 2021 13:09 <-- editieren / zitieren --> Unities abgeben:          Nur für NeulingD21
Hallo Dominik, der Befehl wurde in der Version 2010 (mein erster Versuch, da ich gerade damit arbeite) aufgezeichnet. Später habe ich noch einen Versuch mit der Version 2020 gemacht. Auch hier wurde es aufgezeichnet - in diesem Fall die drei einzelnen Werte. Ich zitier mich auch gerne selbst  Zitat: Original erstellt von Ralf Tide: ...einen Rebuild gemacht (damit ich sehe, dass überhaupt was aufgezeichnet wird)
Der Makrorekorder zeichnet nicht alles auf, ist aber immer ein guter Startpunkt. Ansonsten hilft auch die Benutzeroberfläche auf englisch einzustellen - da bekommt man auch Hinweise (z.B. englische Befehlsnamen zur Suche in der SolidWorks-API-Hilfe) wonach man suchen kann... Wenn Du in den Link in meinem vorherigen Beitrag klickst, findest Du ja eine Liste. Da steht schon einiges drin, was Du auch ansprechen kannst. Und dann gibt es natürlich noch eine ganz lange Liste aller Systemoptionen und Dokumenteinstellungen: http://help.solidworks.com/2018/english/api/swconst/solidworks.interop.swconst~solidworks.interop.swconst.swuserpreferencetoggle_e.html HTH Ralf ------------------
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |