| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| | |
 | In CATIA den Maßstab ändern - so geht es, ein Fachartikel
|
|
Autor
|
Thema: CustomInfo2 vom PRT (1060 mal gelesen)
|
koehlerax Mitglied Systemadmin

 Beiträge: 25 Registriert: 11.11.2002 Dell Precision 350 (P4 3,06GHz HT aktiv) PNY FX5900Ultra 256MB RAM 1GB HD IDE 80GB WinXP SP1 SWX 2001Plus SP4.1 Netz 100MBit
|
erstellt am: 11. Nov. 2002 17:53 <-- editieren / zitieren --> Unities abgeben:         
Also ich wollte bei einem geladenen DRW gerne auf die CustomInfo2 vom dazu gehörenden Model (.prt) zugreifen. So sieht es ja "Normal" aus. ---------------------------------------------------------- Set swApp = CreateObject("SldWorks.Application") Set Part = swApp.ActiveDoc Set ConfigName = Part.GetActiveConfiguration Bezeichnung = Part.CustomInfo2(ConfigName, "Bezeichnung") ---------------------------------------------------------- Aber wie komme ich jetzt auf eine Konfigurationsspezifische Eigenschaft die im Model gespechert ist? Axel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beere Mitglied Dipl.-Ing. Maschinenbau
   
 Beiträge: 1437 Registriert: 31.07.2001 Pro/E 2001 Wildfire 2 SWX 2013 HP Z400; 4GB
|
erstellt am: 11. Nov. 2002 22:20 <-- editieren / zitieren --> Unities abgeben:          Nur für koehlerax
'nabend koehlerax... unter http://solidworks.cad.de/mm_index.htm der inoffiziellen Hilfeseite von Stefan findest das Tool "Schriftfeld ausfüllen". Es sollte, denke ich, alles enthalten was Du suchst. Für spezielle Programmierungsfragen bin ich dann doch nicht der richtige. Gruß Andreas P.S. Willkommen in Forum...seh gerade das es Deine erster Beitrag ist...  [Diese Nachricht wurde von Beere am 11. November 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller Mitglied Masch. Ing. HTL / Betriebsing. STV
   
 Beiträge: 1151 Registriert: 11.04.2001
|
erstellt am: 11. Nov. 2002 23:26 <-- editieren / zitieren --> Unities abgeben:          Nur für koehlerax
Hallo Axel! Mit diesen Befehlen erhälst Du schon eine konfig-spezifische Eigenschaft!!! Der Befehl für eine benutzerdefinierte (also für alle Konfig's des Modell's geltende) lautet: "Bezeichnung" = Model.CustomInfo("Bezeichnung") Du hattest die Lösung schon, hast es nur nicht gewusst ! ------------------ Gruss Andreas A+E Müller AG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
koehlerax Mitglied Systemadmin

 Beiträge: 25 Registriert: 11.11.2002 Dell Precision 350 (P4 3,06GHz HT aktiv) PNY FX5900Ultra 256MB RAM 1GB HD IDE 80GB WinXP SP1 SWX 2001Plus SP4.1 Netz 100MBit
|
erstellt am: 12. Nov. 2002 08:08 <-- editieren / zitieren --> Unities abgeben:         
Hmm, wenn es nur so einfach wäre. Aber auf was muss sich denn das Model. beziehen? Wenn ich einfach schreibe "Set Model = swApp.ActiveDoc" dann ändert sich dadurch ja noch nichts. (wäre auch zu einfach ;-) Ich möchte ja die Daten nicht von dem im SW aktiven Dokument haben sondern von dem dazugehörigen 3D Model. Das Beispiel von Stefan habe ich mir schon angeschaut. Es bezieht sich aber auch "nur" auf das im Vordergrund stehende Dokument. Vielleicht hat ja noch jemand (z.B. Stefan ;-) eine andere Idee. Oder habe ich habe bei der Lösung von Andreas etwas falsch verstanden. Gruß Axel
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller Mitglied Masch. Ing. HTL / Betriebsing. STV
   
 Beiträge: 1151 Registriert: 11.04.2001
|
erstellt am: 12. Nov. 2002 10:21 <-- editieren / zitieren --> Unities abgeben:          Nur für koehlerax
Hallo Axel. Nein, hast Du (leider) nicht. Diese Befehle gelten tatsächlich nur für das momentan aktive SWX -Fenster. Wenn Du die Daten aus dem referenzierten Modell der Zeichnung holen willst, müsstest Du der Zeichnung (vermutlich) erst das Ref. Modell entlocken, dieses dann öffnen die Daten rausziehen und in die Zeichnung "pappen". Wie und ob das geht kann ich Dir nicht sagen, sorry. Andere Frage: wozu brauchst du das?? Um z.B. den Schriftkopf auszufüllen? Dann gäbe es einen einfacheren Weg! ------------------ Gruss Andreas A+E Müller AG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
koehlerax Mitglied Systemadmin

 Beiträge: 25 Registriert: 11.11.2002 Dell Precision 350 (P4 3,06GHz HT aktiv) PNY FX5900Ultra 256MB RAM 1GB HD IDE 80GB WinXP SP1 SWX 2001Plus SP4.1 Netz 100MBit
|
erstellt am: 12. Nov. 2002 10:41 <-- editieren / zitieren --> Unities abgeben:         
Ja um den Schriftkopf auszufüllen. Die Daten sind im 3D Model in den Konfigurationsspezifischen Dateieigenschaften abgelegt und sollen dann automatisch (über das Programm das ich schreibe) in die 2D Zeichnung übertragen werden. SW öffnet die 3D sowieso immer im Hintergrund (nicht sichtbar) also sollte man auch an die Daten ran kommen. In der 2D gibt es Felder in der Zeichnung die auch automatisch mit den Daten des Model versorgt werden. Diese sehen z.B. so aus: $PRPSHEET:"Bezeichnung" Wieso das funktioniert weiß ich allerdings nicht, aber es tut ;-). Gruß Axel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
u.clemens Mitglied Konstrukteur
  
 Beiträge: 964 Registriert: 04.07.2000 engineer's law o cheap o fast o good check only two !
|
erstellt am: 12. Nov. 2002 11:10 <-- editieren / zitieren --> Unities abgeben:          Nur für koehlerax
hallo, prinzipiell hat Andreas recht - Du kannst alle konfig.spez. Dateieigenschaften eines Modells direkt mit Bezugshinweisen in einer Zeichnung verlinken - Blick ins HB reicht. Aber manchmal gibt es auch Gründe das nicht so absolut zu tun. Wir füllen z.B. die Felder im Zeichnungskopf prinzipiell mit Dateieigenschaften aus der Zeichnungsdatei. Und wir haben ein Makro, was es gestattet - die konfigspez. Dateieigenschaften des Modells in der Zeichnung abzurufen und auf entsprechende Eigenschaften der Zeichnung zu kopieren (und ggfs. zu editieren). Wenn ich es richtig verstanden habe, ist es das was Du willst ... Dazu hier ein Code-Schnipsel, was die prinzipielle Vorgehensweise verdeutlicht: Set Model = swApp.ActiveDoc If Model Is Nothing Then MsgBox ("Keine Datei geöffnet") Exit Sub End If If (Model.gettype() = swDocDRAWING) Then Dim ModName As String Dim RefModel As Object Dim ConfigName As String Set View = Model.GetFirstView Set View = View.GetNextView ConfigName = View.ReferencedConfiguration ModName = View.GetReferencedModelName() If InStr(1, ModName, ".sldprt", 1) Then Set RefModel = swApp.OpenDoc(ModName, swDocPART) End If If InStr(1, ModName, ".sldasm", 1) Then Set RefModel = swApp.OpenDoc(ModName, swDocASSEMBLY) End If retval = RefModel.ShowConfiguration(ConfigName) If (RefModel.gettype() = swDocASSEMBLY) Then retval = RefModel.ResolveAllLightWeightComponents(True) End If ' Benennung txtSfBenennung.Text = RefModel.CustomInfo2(ConfigName, dfNameBenennung) . . . u.s.w. u.s.f. ich hoffe das hilft Dir etwas weiter, wenn Du mit den einzelne Befehlen nicht klar kommst, schau in die API -Hilfe - dort ist alles schön erklärt.
------------------ mfg uc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller Mitglied Masch. Ing. HTL / Betriebsing. STV
   
 Beiträge: 1151 Registriert: 11.04.2001
|
erstellt am: 12. Nov. 2002 13:53 <-- editieren / zitieren --> Unities abgeben:          Nur für koehlerax
Hallo Alle. Zitat: Original erstellt von u.clemens: ...Aber manchmal gibt es auch Gründe das nicht so absolut zu tun. Wir füllen z.B. die Felder im Zeichnungskopf prinzipiell mit Dateieigenschaften aus der Zeichnungsdatei...
Ich hinterlege alle Daten die in die Zeichnung sollen, im Modell ein. Das funktioniert gut und gewährleistet, dass ich keine "falschen" Daten in der Zeichnung habe. Da ich aber immer gerne Neues lerne , wüsste ich gerne, was für Gründe das sein können? ------------------ Gruss Andreas A+E Müller AG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
u.clemens Mitglied Konstrukteur
  
 Beiträge: 964 Registriert: 04.07.2000 engineer's law o cheap o fast o good check only two !
|
erstellt am: 12. Nov. 2002 14:37 <-- editieren / zitieren --> Unities abgeben:          Nur für koehlerax
Zitat: Original erstellt von Andreas Müller: ... wüsste ich gerne, was für Gründe das sein können?
Beispiel: Wir arbeiten z.B. recht häufig mit Konfigurationen für ähnliche Teile mit verschiedenenen Abmessungen. Jede Konfiguration ist dann ein anderes Teil - hat dann auch verschiedene Identnr., Benennung, Material, usw. Als Zeichnung gibts dann oft eine Tabellenzeichnungen für alle Teile=Konfigs zusammen. - Da wäre es doch blöd, wenn dann die Werte von einer Konfig im Zeichnungskopf stehen - die stehen dann alle in der Tabelle, und im Zeichnungskopf nur die Angaben, die für alle gelten ! Anderes Beispiel: Für Montagezeichnungen stellen wir oft eine Baugruppe in Ihrer Umgebung einer größeren Einheit dar, damit der Zusammenhang erkennbar wird. Diese Umgebung hat dann z.B. dünne Linien und die eigentlich gemeinte Baugruppe für diese Montage dicke Linien. In die Zeichnung ist dann also die übergeordnete BG als Modell referenziert - im Zeichnungkopf soll aber die Benennung, Zeichnungsnummer, ... für die betreffende BG stehen. sicher gibts noch mehr ...
------------------ mfg uc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
koehlerax Mitglied Systemadmin

 Beiträge: 25 Registriert: 11.11.2002 Dell Precision 350 (P4 3,06GHz HT aktiv) PNY FX5900Ultra 256MB RAM 1GB HD IDE 80GB WinXP SP1 SWX 2001Plus SP4.1 Netz 100MBit
|
erstellt am: 12. Nov. 2002 14:45 <-- editieren / zitieren --> Unities abgeben:         
Also das von UC funktioniert super. Genau so wollten die Konstrukteure das. Jetzt ist natürlich wirklich die Frage warum nicht einfach alles im Model ablegen. Der Grund ist das wir noch nicht wissen wie wir unser PLM (GEDAS mit SAP) dazu bringen aus der Konfigurationsspezifischen Eigenschaft des Model etwas zu lesen. Deshalb werden jetzt die Daten in das Drawing geschrieben. Ist nicht ganz fein, aber wenn die es bei GEDAS halt nicht besser können. Mein Programm macht jetzt auf jeden Fall das was es soll dank eurer Hilfe :-). Was hat es denn mit diesen Unities auf sich? Danke nochmals Axel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |