Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Teile-/Baugruppen Eigenschaften

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
Autor Thema:   Teile-/Baugruppen Eigenschaften (424 mal gelesen)
F.O.
Mitglied



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

Beiträge: 60
Registriert: 29.03.2006

erstellt am: 29. Mai. 2006 11: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

Hallo,

ich möchte eine kleines Übersetzungs-Feature in SolidWorks einbauen. Und zwar soll wenn in einem Eigenschaften-Feld etwas eingetragen wird, automatisch (optimaler Zustand) die englische Übersetzung in ein anderes Feld eingetragen werden.

Kann ich einem Eigenschaften-Feld einen API-Aufruf hinterlegen? Ich muss eigentlich herausbekommen ob sich ein dem bestimmten Feld etwas geändert hat und dann meine Übersetzungsfunktionalität rufen.

Kann mir da jemand weiterhelfen?


MfG

F.O.

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

Oberli Mike
Ehrenmitglied V.I.P. h.c.
Dipl. Maschinen Ing.



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

Beiträge: 3641
Registriert: 29.09.2004

SolidWorks 2009 (SP5)
HP XW 8600
Intel Xeron (3GHz)
3 GB RAM
Nvidia FX 1700
Windows XP SP3

erstellt am: 29. Mai. 2006 11:32    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 F.O. 10 Unities + Antwort hilfreich

Ich glaube nicht, dass man einem Eigenschaftsfeld einen API-Aufruf zuordnen kann.

Mann kann aber die Eigenschaftsfelder über ein Makro füllen.

Mit einem Button ein Makro starten, dabei ein Formular (Form) anzeigen, in welcher man die Eigenschaften eintragen kann, und beim bestätigen der Form zusätzlich die zweite Sprache füllen.

------------------
( Um an die Quelle zu kommen, muss man gegen den Strom schwimmen  )

OM

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 658
Registriert: 20.11.2001

SWx 2016 SP4

erstellt am: 29. Mai. 2006 16:30    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 F.O. 10 Unities + Antwort hilfreich


Translate.zip

 
Ich bin mir nicht sicher, ob ich verstanden hab, was du machen möchtest.

Ich hab mal (mehr der Neugierde halber) ein Übersetzungsmakro angefangen, aber nicht weit getrieben.

Das Makro lädt ein Excel-Blatt mit deutschen und englischen Texten, vergleicht alle Texte in einer Zeichnung mit dem Wörterbuch und tauscht jeden bekannten Text gegen den anderssprachigen Text aus.
Textlinks auf Dateieigenschaften kann es nicht, und ich glaube, mit mehrzeiligen Texten haut es auch nicht so hin. Vielleicht kannst du dir ja was abgucken.

Piet

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 658
Registriert: 20.11.2001

SWx 2016 SP4

erstellt am: 29. Mai. 2006 16: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 Nur für F.O. 10 Unities + Antwort hilfreich

Mir fällt gerade noch was ein:
Wenn eine Eigenschaft immer wieder auf Veränderung überprüft werden soll, bietet sich vielleicht ein Makro-Feature an, das am Ende des Featurebaums angesiedelt wird. Das kann z.B. bei jedem neuen Durchrechnen den Wert einer Dateieigenschaft prüfen und gegebenenfalls eine Aktion auslösen.

Piet

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

F.O.
Mitglied



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

Beiträge: 60
Registriert: 29.03.2006

erstellt am: 29. Mai. 2006 16: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

Hallo Piet,

vielen Dank für das Makro. Werde es mir gleich mal anschauen.

Wie funktioniert das mit den Features? Habe ehrlich gesagt noch nichts damit gemacht.


MfG

F.O.

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 658
Registriert: 20.11.2001

SWx 2016 SP4

erstellt am: 30. Mai. 2006 09:03    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 F.O. 10 Unities + Antwort hilfreich

Oha, ich hab diese Frage befürchtet.

Wenn du ein Makrofeature ausführst, wird ein Makro in den Featurebaum integriert, welches beim Durchrechnen des Teils immer mit ausgeführt wird. Man kann es so einstellen, dass das Makrofeature immer am Ende des Featurebaums steht, auch wenn andere neue Features hinzugefügt werden.

Die Syntax von Makrofeatures ist nicht gerade selbsterklärend. Ich hab das nur in einem Makro verwendet, und da hab ich 95% des Codes abgeschrieben. Die Onlinehilfe verrät mehr, ansonsten guckst du hier:
http://ww3.cad.de/foren/ubb/Forum2/HTML/003834.shtml#000002

Piet

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

F.O.
Mitglied



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

Beiträge: 60
Registriert: 29.03.2006

erstellt am: 01. Jun. 2006 13:55    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

Ich habe jetzt den ChangeCustomPropertyNotify-Event abgefangen (Beim Schließen des Eigenschaftendialoges wird die Funktion gerufen). Wenn mein deutsches Feld geändert wird, übersetze ich es und schreibe es in das englische Feld. Soweit so gut, nur wird von SolidWorks der Wert wieder überschrieben, weil er sich den alten Wert gemerkt hat und nochmals der Event gerufen wird.

Hat jemand eine Idee? Kann man den Event irgendwie abbrechen (return-Wert)?


MfG

F.O.

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 658
Registriert: 20.11.2001

SWx 2016 SP4

erstellt am: 01. Jun. 2006 14:11    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 F.O. 10 Unities + Antwort hilfreich

Stell doch mal deinen Code rein, dann kriegt man eher eine Idee, was das ganze soll.

Piet

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

F.O.
Mitglied



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

Beiträge: 60
Registriert: 29.03.2006

erstellt am: 01. Jun. 2006 16:03    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

Der Event:

Code:

public int doc_ChangeCustomPropertyNotify(string propName, string configuration, string oldValue, string newValue, int valueType) {
 
  userAddin.translate(configuration, propName, oldValue, newValue, valueType);

  return 0;
}


Meine Übersetzungsfunktion (ohne Übersetzungmechanismus, zum Test):

Code:

public bool translate(string configuration, string propName, string oldValue, string newValue, int valueType ) {
  ...
  activeDoc.set_CustomInfo2(configuration, "englisch", "test");
  ...
}

Der Event wird für das Feld "englisch" nach dem Ändern zweimal implizit gerufen, z.B.: mit folgenden Werten (es war leer):

1. newValue: "test" oldValue: ""
2. newValue: "" oldValue: "test"

Somit wird der Wert test beim 1. reingeschrieben und beim 2. wieder gelöscht.

Ich kann auch nicht die Eigenschaft löschen und wieder einfügen, er merkt am Namen dass sie schon mal da war.


MfG

F.O.

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

F.O.
Mitglied



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

Beiträge: 60
Registriert: 29.03.2006

erstellt am: 01. Jun. 2006 16:40    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

Wenn das englische Feld über den deutschen ist (Reihenfolge in der Liste), dann funktioniert es. Wenn es danach kommt, wird es ja erst später geprüft und somit gehts schief.

Gut, wäre es wenn man das Event einfach abbrechen könnte, aber anscheinend ist der Returnwert nur proforma da.

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)2019 CAD.de | Impressum | Datenschutz