Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Abfrage einer Modell-Dateieigenschaft in Zeichnungen

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
  
HEDELIUS Hausmesse 2024
Autor Thema:  Abfrage einer Modell-Dateieigenschaft in Zeichnungen (2326 mal gelesen)
hico
Mitglied
Konstrukteur


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

Beiträge: 258
Registriert: 03.03.2005

erstellt am: 19. Jul. 2007 10:04    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 API-Profis!

Wie liest man in einem Makro die Dateieigenschaft eines in der Zeichnung befindlichen Modells (Baugruppe oder Einzelteil) aus?
Das Problem: Ich möchte per Makro Zeichnungen als PDF abspeichern, dafür soll mir das Makro aber noch den zweistelligen Ausgabe-Index in den Dateinamen integrieren. Das zusammensetzen des Dateinamens an sich ist kein Problem, nur die Abfrage der Dateieigenschaft des in der Zeichnung befindlichen Modells gelingt mir nicht.
Index = Model.CustomInfo2(glbConfName, "Ausgabe")
bezieht sich leider nur auf die Eigenschaften der Zeichnung...

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

Gruß Hilmar

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 19. Jul. 2007 10:22    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 hico 10 Unities + Antwort hilfreich

Hallo Hilmar,

du musst dir nur das richtige ModelDoc2 Objekt besorgen.
Folgendes vorgehen ist möglich:

Code:

Dim oDrawingDoc As SldWorks.DrawingDoc
Dim oView As SldWorks.View
Dim sModelName As String
Dim oSwPartModel As SldWorks.ModelDoc2
Dim oSwViewPartModel As SldWorks.ModelDoc2

Set oSwApp = Application.SldWorks
Set oSwModel = oSwApp.ActiveDoc
Set oDrawingDoc = oSwModel
'Das ist das Blatt
Set oView = oDrawingDoc.GetFirstView()
'Die erste Ansicht im Blatt
Set oView = oView.GetNextView
'Dokument der Ansicht
sModelName = oView.GetReferencedModelName

'Jetzt hast du einen Pfad und kannst in den geöffneten ModelDocs nach dem richtigen Suchen.
Set oSwPartModel = oSwApp.GetFirstDocument
Do While Not oSwPartModel Is Nothing
  'Haben wir das richtige ModelDoc?
  If oSwPartModel.GetPathName = sModelName Then
      'Gefunden!
      set oSwViewPartModel  = oSwPartModel
      Exit Do
  End If
  Set oSwPartModel = oSwPartModel.GetNext
Loop

'Dokumenteigenschaft
if not oSwViewPartModel is Nothing then
  Index = oSwViewPartModel.CustomInfo2(glbConfName, "Ausgabe")
end if



------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

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

hico
Mitglied
Konstrukteur


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

Beiträge: 258
Registriert: 03.03.2005

erstellt am: 23. Jul. 2007 10: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

Hallo!
Habe mich nun allmählich durchgekämpft und habe nun folgende Frage:
Meine Part- und Assembly-Dateien besitzen Dateieigenschaften mit den Bezeichnungen "1aus", "2aus", "3aus"... "8aus". Diese sind je nach Ausgabeindex mit Zahlen oder Buchstaben gefüllt, z.B. 01, 02, a, b etc. oder sie sind leer.

Wie kann man aus diesen Dateieigenschaften den höchsten Ausgabeindex abfragen? Höchster bezogen auf "1aus" bis "8aus", nicht Inhaltlich gesehen auf z.B. 03, 04, 05, c, e, 12, 15...
Hoffe ich habe mich klar genug ausgedrückt 

Für den ersten Eintag wäre das...
Index = SwModelDoc.CustomInfo2("", "1aus")

------------------
Gruß Hilmar

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 23. Jul. 2007 11: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 hico 10 Unities + Antwort hilfreich

Hallo Hilmar,

das kannst du wieder mit einer Schleife lösen.

Dim sEigenschaft as String
Dim sGefundeneEigenschaft as String
Const sEigenschaftName as String = "aus"
Dim sAktuellerEigenschaftName as String
dim iZaehler as integer

Do
  iZaehler  = iZaehler  + 1
  'Eigenschaftsmane zusammensetzen
  sAktuellerEigenschaftName = iZaehler & sEigenschaftName
  sEigenschaft = SwModelDoc.CustomInfo2("", sAktuellerEigenschaftName )
  if sEigenschaft = "" then
    'Wenn Eigenschaft leer ist dann aus der Schleife raus
    Exit Do
  else
    'Dateieigenschaften mit den höchsten Ausgabeindex
    sAktuellerEigenschaftName = sEigenschaft
  End if
Loop

------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

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



Projektkonstrukteur (m/w/d) für den Bereich Automation

Die BOOSTER Precision Components (Schwanewede) GmbH ist ein Hersteller von mechanischen Präzisionsteilen für den internationalen Automotive-Markt und für industrielle Anwendungen mit Sitz im Industriepark Brundorf Schwanewede. (Niedersachsen)

Wir haben uns auf die Zerspanung mithilfe modernster Fertigungsprozesse spezialisiert und sind Marktführer im Bereich der Herstellung von Verdichterrädern für die Automobilindustrie....

Anzeige ansehenProjektmanagement
hico
Mitglied
Konstrukteur


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

Beiträge: 258
Registriert: 03.03.2005

erstellt am: 23. Jul. 2007 13:45    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 Daniel!

Dank Deiner Hilfe habe ich es geschafft! Habe den Code minimal verändert, nun funktioniert es prima...

Code:
Dim Index As String   
Const IndexName As String = "aus"
Dim aktIndexName As String
Dim Zaehler As Integer

Zaehler = 9
    Do
        Zaehler = Zaehler - 1
        'Eigenschaftsmane zusammensetzen
        aktIndexName = Zaehler & IndexName
        Index = SwModelDoc.CustomInfo2("", aktIndexName)
        If Index <> "" Then
            'Wenn Dateieigenschaft (Index) NICHT leer ist dann aus der Schleife raus
            Exit Do
        End If
    Loop


10 U's 4 U!

------------------
Gruß Hilmar

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