Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Werte von globalen Variablen mit API ändern

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
  
Hoffmann Expertenseminar "Digitale Prozess- und Fertigungslösungen"
Autor Thema:  Werte von globalen Variablen mit API ändern (4459 mal gelesen)
sunnyrabbit
Mitglied
Ingenieur


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

Beiträge: 10
Registriert: 18.07.2013

SWX 2013 sp5

erstellt am: 18. Jul. 2013 11:46    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 zusammen,

ich bin ein API Anfänger, jedoch arbeite ich schon seit 3 Jahren mit SWX.

Nun mein Fallbeispiel 

Ich habe ein Part, in dem es zwei globale Variablen gibt:

Hoehe=100
Breite=200

Dies sind bestehende Variablen, die entsprechend an Maße gekoppelt sind.

Nun möchte ich diese Werte (100, 200) mittels API zb in einer user form Editieren können.

1. Dies würde auch mit einer Excel-Tabelle gehen, das möchte ich jedoch vermeiden.

2. Ich habe bereits eine Möglichkeit gefunden, über API properties anzulegen und diese an die globalen Variablen zu koppeln, jedoch ist das sehr umständlich, da ich Maß, Property und globale Variable miteinander koppeln muss.

3. Gehe ich über folgenden Befehl:

Set swEquationMgr = Part.GetEquationMgr()
swEquationMgr.Add -1, """Hoehe""=3000"

dann löscht SWX alle bestehenden Gleichungen und trägt nur "Hoehe""=3000" ein...

Vielen Dank für eure Ideen im Voraus !!!

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

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: 18. Jul. 2013 12:08    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 sunnyrabbit 10 Unities + Antwort hilfreich

Hallo sunnyrabbit,

und herzliches Willkommen im SolidWorks Brett auf CAD.de 

Vorneweg: schöner erster Beitrag, alle relevanten Infos vorhanden einschließlich den Alternativen und dem, was du schon versucht hast.

Zum Thema: ich denke, du bist da an der richtigen Stelle, ich würde zwar die EquationMgr::Add2 nehmen, weil die seit der 2010 die aktuelle ist, aber ansonsten sollte das klappen. Vielleicht gibt es einen Bug in der alten Add-Methode - ich kann im Moment allerdings gerade nicht checken, ob das mit dem Add2 bei mir klappt.

Ist die globale Variable denn mit diesem Namen schon vorhanden oder garantiert nicht da? Das könnte einen Unterschied machen, wenn du die mit dem Index -1 ans Ende hängen willst ...

Wenn die globale Variable (Gleichung) schon vorhanden ist müsstest du die mit EquationMgr::Equation aktualisieren können. Um rauszukriegen, ob es die globale Variable schon gibt vorher mit EquationMgr::GetCount die Anzahl der Gleichungen holen und mit einer Schleife einmal alle checken.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

sunnyrabbit
Mitglied
Ingenieur


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

Beiträge: 10
Registriert: 18.07.2013

SWX 2013 sp5

erstellt am: 18. Jul. 2013 12:43    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 StefanBerlitz,

erst einmal vielen Dank für das "Kompliment".

und auch für deine schnelle Antwort.

Probieren geht über studieren, jetzt weiss ich dass ich auf dem richtigen Weg bin 

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 18. Jul. 2013 13:23    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 sunnyrabbit 10 Unities + Antwort hilfreich

Hallo Sunnyrabat,

mir stellt sich hier erst mal die Frage, ob es wirklich erforderlich ist, dass die Maße über diese Variablen bzw. Gleichungen gesteuert werden, wenn du es eh über API machen willst.
Wenn es nur um Maß-Steuerung über API geht, würde ich einfach das Maß direkt ändern, z.B.
Part.Parameter("Laenge@Profil-Austragung").SystemValue = WertInMM / 1000
Winkel müssen m. W. im Bogenmaß angegeben werden, also Winkel° * 1.74532925199433E-02
Siehe Beispiel in der API-Hilfe "Change Dimension Example (VBA)"

Maße, die gleich sein müssen, würde ich in dem Fall einfach miteinander verknüpfen.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... |

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 18. Jul. 2013 14:23    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 sunnyrabbit 10 Unities + Antwort hilfreich


befchange.PNG


afterchange.PNG


changprop.zip

 
Hallo Sunnyrabat,

wenn es nur 2 Globale Variablen wären, könntest du doch ebnso eine Steuerskizze mit den 2 Maßen machen und von diesen alles abhängigt machen.

Was spricht gegen das direkte verwenden einer benutzerdefinierte Eigenschaft, weil diese kannst du ja auch in einer Gleichung verwenden und per API ansprechen, hier könntest du dir auch für das betreffende Teil eine Regiesterkarte basteln über die du dann dein Modell steurst.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

sunnyrabbit
Mitglied
Ingenieur


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

Beiträge: 10
Registriert: 18.07.2013

SWX 2013 sp5

erstellt am: 18. Jul. 2013 15:12    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

Endlich mal ein gescheites Forum!!!

Leute echt cool wie sich hier ins Zeug gelegt wird, da kenne ich ganz andere Foren.

Vorab mal noch eine Frage:
Gibt es einen API befehl, mit dem man einen Zahlenwert einer BESTEHENDEN GLEICHUNG bearbeiten kann oder gibt es da nur den Befehl:

swEquationMgr.Add2.....

Also aufgepasst 

Bevor ich etwas im großen Stil aufziehe muss ich erst alle Möglichkeiten mit Fehlerquellen abschätzen können...

Das Prinzip beruht auf dem Fallbeispiel, jedoch kommen im Ernsrfall ca. 50 Variablen zum Einsatz, je nach Variantenart einer Baugruppe.

@KMassler

Die Maße direkt anzusteuern ist eine gute Idee, muss ich mir auch mal durch den Kopf gehen lassen.

@bk.sc

Deine Version ist natürlich sehr "compfortable", eignet sich meiner Meinung nach aber nur bei einer übersichtlichen Anzahl von Variablen.

Leute thanks für euer Interesse echt cooles Forum.

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

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: 18. Jul. 2013 15: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 sunnyrabbit 10 Unities + Antwort hilfreich

Hallo sonniges Häschen,

Zitat:
Original erstellt von sunnyrabbit:
Gibt es einen API befehl, mit dem man einen Zahlenwert einer BESTEHENDEN GLEICHUNG bearbeiten kann oder gibt es da nur den Befehl:

swEquationMgr.Add2.....



Wie oben geschrieben kannst du bestehende Gleichungen mit EquationMgr::Equation sowohl auslesen als auch setzen, sprich ändern. Das schwierigste ist eigentlich an den richtige Index ranzukommen 

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

sunnyrabbit
Mitglied
Ingenieur


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

Beiträge: 10
Registriert: 18.07.2013

SWX 2013 sp5

erstellt am: 18. Jul. 2013 15: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

Gut

jetzt habe ich das auch verstanden....   

THX Stefan

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 19. Jul. 2013 11:42    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 sunnyrabbit 10 Unities + Antwort hilfreich

Hallo sunnyrabbit,

bei kompletten Baugruppen, ist Excel aber sicher eine gute Varainte die ganzen informationen zu händeln, evtl. sogar in Zusammenarbeit mit dem Konfigurationspublisher.
Alternativ könntest ud das ganze auch regelbasierend statt gleichungsbasierend mit DriveWorksXpress aufzubauen.

Möglichkeiten über Möglichkeiten....  

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 19. Jul. 2013 editiert.]

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