Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Per API auf Teile in Zeichenansichten zugreifen - wie?

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
  
SolidCAM Professor Videos | Tipps & Tricks (SolidCAM)
Autor Thema:  Per API auf Teile in Zeichenansichten zugreifen - wie? (1277 mal gelesen)
Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 16. Okt. 2001 10:49    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

Und immernoch schlage ich mich mit der API rum und stelle fest, dass meine Programmierkenntnisse eher marginal sind und meine Ziele verflucht hoch. Aber nachdem hier dann doch einige Leute sind die da doch recht gut durchblicken komme ich immer wieder hierher zurück. Mein derzeitiges Problem ist, dass ich es nicht schaffe in Zeichnungen auf die Teile zuzugreifen, die in den einzelnen Ansichten vorkommen. Über die ganzen Befehle wie GetFirstSubFeature, GetNextSubFeature, GetNextFeature ist der tiefste Punkt an den ich in meinem Baum komme die Zeichenansicht selbst. Aber wie komme ich jetzt an das Zeug ran, das unter der Zeichenansicht kommt?
In erster Linie will ich rausbekommen welche Teile drin sind und dann will ich auf die Dateieigenschaften zugreifen um mit Werten die dort drin stehen in der Zeichnung diese Teile dann auf bestimmt Layer zu legen (wobei ich dafür auch noch keinen Befehl gefunden habe).
Fragen über Fragen und hoffentlich auch bald eine (oder meherere Antworten).

Besten Dank,
Kalle

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

Armin B
Mitglied
Software Engineer ERP/PLM/CAD


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

Beiträge: 208
Registriert: 04.09.2000

Sw 2015 SP3

erstellt am: 16. Okt. 2001 11: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 Kalle 10 Unities + Antwort hilfreich

Moin moin,

um sowas zu machen, muss man erst mal verstehen, wie SolidWorks in Zeichnungen arbeitet.
Die Zeichnung besteht nämlich im Wesentlichen aus ein paar Ansichten und Referenzen auf (i.d.R. geöffnete) Modelle.
Jede Zeichensicht hat daher selbst die Information auf welches Modell sie referenziert.
Wie so oft, habe ich mal wieder keine Lust, Dir den ganzen Code vorzukauen, deshalb hier nur die Vorgehensweise:


  • Über DrawingDoc.GetFirstView() und View.GetNextView durch die Ansichten iterieren, bis die gewünschte Ansicht gefunden ist.
  • Mit View.IsModelLoaded() herausfinden, ob das Modell geladen ist und ggf. mit View.LoadModel() nachladen.
  • Den Namen des Modells mit View.GetReferencedModelName() holen
  • dessen Dokument-Interface mit SldWorks.GetOpenDocumentByName(...) holen.
  • Dann die ganze Feature-Arie und was Du noch so vorhast...

Hoffe das hilft Dir.

Gruß,
Armin

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 16. Okt. 2001 11:47    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

Na das ist doch schonmal ein Anfang. Wenn man nicht wirklich weiss wonach man suchen muss, ist man irgendwie ganz schön verloren. Wenn ich wieder etwas Zeit hier habe, werde ich das mal so versuchen. Dann sollte es ja auch kein Thema mehr sein, an die Dateieigenschaften ranzukommen.
Nur die Sache mit den Layern weiss ich noch nicht. Wenn ich versuche das mal per Makro aufzuzeichnen steht nachher gar nichts im Code (wie so oft).
Im Grunde genommen muss ich ja das Teil in der Zeichnung auswählen und dann einen Layer (da kommt mir gerade eine Idee, die ich gleich mal versuchen werde......

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

Beere
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 1437
Registriert: 31.07.2001

Pro/E 2001
Wildfire 2
SWX 2013
HP Z400; 4GB

erstellt am: 16. Okt. 2001 12:17    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 Kalle 10 Unities + Antwort hilfreich

Hi Kalle!

Meine API Kenntnisse sind ebenso marginal, wenn nicht sogar noch marginaler (schönes Wort  ).

>>>>Dann sollte es ja auch kein Thema mehr sein, an die Dateieigenschaften ranzukommen.<<<<<<<<<
sagst Du so in Deinem jugendlichen leichtsinn.......

Ich wollt da auch mal ran! Wenn Du da rangekommen bist, ich mein an die Dateieigenschaften, dann sag doch mal bescheid.
Ich bin bisher nur an die Eigenschaften "Info" (Titel,Thesen,Datum etc.) gekommen. Kommen aber mit .CustomInfo und .CustomInfo2 nicht an die benutzerdefinierten oder gar konfigurationsspezifische Eigenschaften ran.

Wie gesagt, wenn Du da rankommst, würd mich freuen wenn Du mal bescheid sagst.

Gruß
Andreas

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

u.clemens
Mitglied
Konstrukteur


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

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 16. Okt. 2001 12:21    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 Kalle 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Kalle:

In erster Linie will ich rausbekommen welche Teile drin sind und dann will ich auf die Dateieigenschaften zugreifen ...

so etwas ähnliches hatten wir schon mal
schau mal hier nach: http://www.cad.de/foren/ubb/Forum2/HTML/000146.shtml

------------------
mfg uc

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 16. Okt. 2001 12:35    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

Hi Beere,

das funktioniert aber mit den Befehlen.

Zum setzten einer Eigenschaft, die schon existiert mache ich das mit

Code:

ModelDoc.CustomInfo("Name der Eigenschaft") = "Text der rein soll"

und wenn die Eigenschaft noch nicht existiert dann geht's mit

Code:

result = ModelDoc.AddCustomInfo("Name der Eigenschaft", Art der Eigenschaft, "Text der rein soll")

die Art der Eigenschaft ist auch nur ein String bzw. die SWXSolidWorks-eigenen Konstanten swCustomInfoUnknown, swCustomInfoText, swCustomInfoDate, swCustomInfoNumber und swCustomInfoYesOrNo

Das ist wahrscheinlich die einfachste (und stümperhafteste) Art um auf die benutzerdefinierten Dateieigenschaften zu zugreifen.

Wenn Du auf die konfigurationsspezifischen erstellen willst geht das folgendermaßen:

Code:

result = ModelDoc.AddCustomInfo3("Name der Konfiguration", "Name der Eigenschaft", Art der Eigenschaft, "Text der rein soll")

Und um die sie zu ändern macht man das mit

Code:

ModelDoc.CustomInfo2("Name der Konfiguration", "Name der Eigenschaft") = "Text der rein soll"

Ich hoffe das hat geholfen.

Bis dann
Kalle

[Diese Nachricht wurde von Kalle am 16. Oktober 2001 editiert.]

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

Baltenweck
Mitglied
Konstrukteur


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

Beiträge: 170
Registriert: 13.03.2001

Früher brauche man 3 Comodore, um zum Mond zu fliegen - heute braucht man 1 Ghz um Windows zu starten...

erstellt am: 17. Okt. 2001 08: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 Nur für Kalle 10 Unities + Antwort hilfreich

Hallo Kalle,

das hat mir mal geholfen: http://www.cad.de/foren/ubb/Forum2/HTML/000412.shtml

Gruss Patrick

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