Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Keine externen Referenzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
SOLIDWORKS Webinar-Serie 2020 / 21: Aufzeichnungen zum Nachhören
Autor Thema:  API: Keine externen Referenzen (945 mal gelesen)
NeulingD21
Mitglied
Konstrukteur


Sehen Sie sich das Profil von NeulingD21 an!   Senden Sie eine Private Message an NeulingD21  Schreiben Sie einen Gästebucheintrag für NeulingD21

Beiträge: 13
Registriert: 03.02.2021

SolidWorks 2018; API-Programmierung; Kante übernehmen

erstellt am: 03. Feb. 2021 08:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Schaltflache.png

 
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
Moderator
-




Sehen Sie sich das Profil von Ralf Tide an!   Senden Sie eine Private Message an Ralf Tide  Schreiben Sie einen Gästebucheintrag für Ralf Tide

Beiträge: 4978
Registriert: 06.08.2001

Sehr seltsame Dinge passiern <Klaus Lage - Toy Story>
.-)

erstellt am: 03. Feb. 2021 08:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NeulingD21 10 Unities + Antwort hilfreich

Hallo Neuling21,

willkommen im Forum  

Bei mir hat der Makrorekorder folgendes aufgezeichnet:

Code:
Dim swApp As Object

Dim 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


Sehen Sie sich das Profil von NeulingD21 an!   Senden Sie eine Private Message an NeulingD21  Schreiben Sie einen Gästebucheintrag für NeulingD21

Beiträge: 13
Registriert: 03.02.2021

SolidWorks 2018; API-Programmierung; Kante übernehmen

erstellt am: 03. Feb. 2021 09:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
Mitglied
freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


Sehen Sie sich das Profil von ad_man an!   Senden Sie eine Private Message an ad_man  Schreiben Sie einen Gästebucheintrag für ad_man

Beiträge: 1366
Registriert: 20.12.2003

erstellt am: 03. Feb. 2021 10:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NeulingD21 10 Unities + Antwort hilfreich

Moin,

schau dir mal das API-Beispiel

http://help.solidworks.com/2020/english/api/sldworksapi/Get_and_Set_User_Preferences_Example_VB.htm

an. Dort siehst du, wie du den Wert einer Systemoption ermitteln bzw. setzen kannst.

------------------
==========
Gruß
Andreas
==========

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ralf Tide
Moderator
-




Sehen Sie sich das Profil von Ralf Tide an!   Senden Sie eine Private Message an Ralf Tide  Schreiben Sie einen Gästebucheintrag für Ralf Tide

Beiträge: 4978
Registriert: 06.08.2001

Sehr seltsame Dinge passiern <Klaus Lage - Toy Story>
.-)

erstellt am: 03. Feb. 2021 11:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NeulingD21 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von NeulingD21:
1.) Was ist mit "keine Dokumenteigenschaft" abschalten gemeint?
War nur als Hinweis gedacht - es ist keine Dateieigenschaft, hat nichts mit Deinem Teil zu tun. Es ist eine Systemoption.
Zitat:
Original erstellt von NeulingD21:
2.) Zum Verständnis: Kann ich irgendwie auch abfragen ob "Keine externen Referenzen" bereits True ist? Wenn ja wie.
Das hat sich wahrscheinlich mit dem Beispiel von Andreas  geklärt 

Aber: Bis 2019 gilt http://help.solidworks.com/2018/english/api/swconst/so_externalreferences.htm?verRedirect=1
Ab 2020 http://help.solidworks.com/2020/english/api/swconst/so_externalreferences.htm?verRedirect=1 (ganz nach unten scrollen...) swExternalReferencesDisable Obsolete 

Dafür gibt's dann aber einzelne Werte für
- swAllowCreationOfReferencesExternalToModel (Beliebige Komponenten)
- swReferenceOnlyEnvelopeComponentType (Hüllenkomponente)
- swReferenceInContextOfTopLevelAssembly (übergeordnete Baugruppe/selbe Baugruppe)

HTH
Ralf

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

NeulingD21
Mitglied
Konstrukteur


Sehen Sie sich das Profil von NeulingD21 an!   Senden Sie eine Private Message an NeulingD21  Schreiben Sie einen Gästebucheintrag für NeulingD21

Beiträge: 13
Registriert: 03.02.2021

SolidWorks 2018; API-Programmierung; Kante übernehmen

erstellt am: 03. Feb. 2021 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
Moderator
-




Sehen Sie sich das Profil von Ralf Tide an!   Senden Sie eine Private Message an Ralf Tide  Schreiben Sie einen Gästebucheintrag für Ralf Tide

Beiträge: 4978
Registriert: 06.08.2001

Sehr seltsame Dinge passiern <Klaus Lage - Toy Story>
.-)

erstellt am: 03. Feb. 2021 13:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NeulingD21 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz