Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro Zeichnung öffnen

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
  
SPS
Autor Thema:  Makro Zeichnung öffnen (3482 mal gelesen)
TZ777
Mitglied


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

Beiträge: 4
Registriert: 06.04.2005

erstellt am: 29. Apr. 2005 10: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

Hallo,

Ich suche ein Makro das mir Zeichnungen direkt aus den Modellen öffnet. Diese Funktion gibt es so schon in SW05, nur ich bräuchte eine etwas abgeänderte funktion. Und zwar das er sich die Zeichnungsnummer aus den Konfigurationsspezifischen Eigenschaften holt.

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

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 29. Apr. 2005 11: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 Nur für TZ777 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von TZ777:
Und zwar das er sich die Zeichnungsnummer aus den Konfigurationsspezifischen Eigenschaften holt.

Hallo TZ777,

wenn du die Zeichnung öffnest kannst du die Zeichnungsnummer doch aus den Eigenschaften auslesen.

Oder hab ich dein Problem falsch verstanden?

gruß
Flo

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

TZ777
Mitglied


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

Beiträge: 4
Registriert: 06.04.2005

erstellt am: 29. Apr. 2005 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

Jo da hast du mich leider falsch verstanden.

Wenn du ein modell offen hast, mit der rechten maustaste auf den Teile Namen gehst hast du den Befehl Zeichnung öffnen. Solidworks öffnet dann automatisch die dazugehörige Zeichnung(Zeichnung muss im selben Ordner sein und der name der Datei muss mit dem Modelnamen übereinstimmen, sonst funktioniert das ganze nicht).

Wenn ich nun mehrere Konfigurationen in diesem Modell habe öffnet er mir nur die Zeichnung mit dem Modellnamen.Ich kann also nur eine Zeichnung erstellen mit mehreren Blättern, will ich aber nicht.

Da ich aber in den eigenschaften für jede Konfiguration eine seperate Zeichnungsnummer eingeben kann (die steht bei uns im schriftfeld und ist auch der Dateiname der Zeichnung), soll er mir diese nun aus den Eigenschaften rausziehen, und die dazugehörige Datei öffnen.

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

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 29. Apr. 2005 11:41    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 TZ777 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von TZ777:
Da ich aber in den eigenschaften für jede Konfiguration eine seperate Zeichnungsnummer eingeben kann (die steht bei uns im schriftfeld und ist auch der Dateiname der Zeichnung), soll er mir diese nun aus den Eigenschaften rausziehen, und die dazugehörige Datei öffnen.

Du hast doch die Lösung schon hingeschrieben 

1. Eigenschaft (Zeichnungsnummer) auslesen
2. Datei Öffnen -> SldWorks.OpenDoc
(ggf. Dateiname zusammensetzen Zeichnungsnummer + ".sldrw")

gruß
flo

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

[Diese Nachricht wurde von FlorianGerteisz am 29. Apr. 2005 editiert.]

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

TZ777
Mitglied


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

Beiträge: 4
Registriert: 06.04.2005

erstellt am: 29. Apr. 2005 12:14    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

Jo die Lösung habe ich, aber an der Umsetzung happerts.

Wäre also also nett falls mir jemand dabei helfen könnte.
Da ich leider nicht Programmieren kann.

Danke für jede hilfe 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: 29. Apr. 2005 12: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 TZ777 10 Unities + Antwort hilfreich


open-drawing-config-property.zip

 
Hallo TZ777,

normalerweise mach ich so etwas auch im Kundenauftrag, zumal dein Profil keinen Schluss darüber zulässt, wer du bist und was du machst, aber da ich gerade die API-Umgebung der SW2006 ein bisschen testen wollte hab ich dir was gebastelt.

Code:

' ************************************************************************
' * Makro holt sich vom aktiven Modell aus der konfigurations-spezifischen
' * Dateieigenschaft DRWNAME (unten festlegen) den Namen der passenden
' * Zeichnungsnumemr heraus und öffnet diese in SOlidWorks
' *
' * 29.04.2005 Stefan Berlitz (stefan.berlitz@solidworks.cad.de)
' * http://solidworks.cad.de
' * http://swtools.cad.de
' **********************************************************************

' this Constants are editable to customize behaviour
' Name der konfspezifischen Dateieigenschaft, in der der Name des
' Zeichnungsdokumentes steht
Const DRWNAME = "znr"

' **********************************************************************
' do not edit below this line unless you know what you are doing ;-))

Const swDocNONE = 0
Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3

Const swOpenDocOptions_Silent = 1
Const swOpenDocOptions_ReadOnly = 2
Const swOpenDocOptions_ViewOnly = 4
Const swOpenDocOptions_RapidDraft = 8
Const swOpenDocOptions_LoadModel = 16
Const swOpenDocOptions_AutoMissingConfig = 32

Sub main()
   
    Dim swApp As Object
    Dim ModelDoc As Object
    Dim ModelPathName As String
    Dim ActiveConfname As String
    Dim DrwFileName As String
    Dim DrwFullPath  As String
    Dim DrawingDoc As Object
   
    Dim errors As Long
    Dim warnings As Long
   
    ' an SolidWorks anklinken und aktives Assembly holen
    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc = swApp.ActiveDoc
    If ModelDoc Is Nothing Then
        ' dann war gar kein Dokument geöffnet, wie soll da was funktionieren
        MsgBox "Kein Dokument aktiv"
        Exit Sub
    End If
    If (ModelDoc.GetType = swDocDRAWING) Then
        ' wenn keine Modell aktiv ist wird das Makro wieder beendet
        MsgBox "Nur für Modelle geeignet"
        Exit Sub
    End If

    ' dann den Namen der aktuellen Konfiguration raussuchen, dazu brauchen
    ' wir den dateinamen des aktuellen Modells
    ModelPathName = ModelDoc.GetPathName
    ActiveConfname = swApp.GetActiveConfigurationName(ModelPathName)
   
    ' damit jetzt die Dateieigenschaft auslesen, in der der Zeichnungsname drinsteht
    DrwFileName = ModelDoc.CustomInfo2(ActiveConfname, DRWNAME)
    If DrwFileName = "" Then
        ' dann gibt es die konfigspezifische Dateieigenschaft nicht
        MsgBox "Dateieigenschaft " & DRWNAME & " nicht vorhanden oder leer"
    Else
        ' sicherheitshalber ein .SLDDRW anhängen, falls nicht vorhanden
        If LCase(Right(DrwFileName, 7)) <> ".slddrw" Then
            DrwFileName = DrwFileName & ".slddrw"
        End If
        ' dann diese Datei im Ordner der Zeichnung suchen
        DrwFullPath = GetFullPath(ModelPathName) & "\" & DrwFileName
        If FileExists(DrwFullPath) Then
            ' dann Zeichnung öffnen
            Set DrawingDoc = swApp.OpenDoc6(DrwFullPath, swDocDRAWING, 0, "", errors, warnings)
        Else
            ' Datei existiert nicht
            MsgBox "Zeichnung " & DrwFileName & " existiert nicht im Verzeichnis." & vbCrLf & _
                  DrwFullPath
        End If
    End If
   
End Sub

Private Function GetFullPath(strPath As String) As String
  '
  Dim intCounter As Integer

  ' rückwärts bis zum Punkt suchen
  For intCounter = Len(strPath) To 1 Step -1
    If Mid$(strPath, intCounter, 1) = "\" Then
      Exit For
    End If
  Next intCounter

  ' und den Wert zurückgeben OHNE den Punkt
  GetFullPath = Left$(strPath, intCounter - 1)

End Function
Private Function FileExists(strDest As String) As Boolean
  ' checks if file strDest exists
  Dim intLen As Integer

  If strDest <> vbNullString Then
    On Error Resume Next
    intLen = Len(Dir$(strDest))
    On Error GoTo 0
    FileExists = (Not Err And intLen > 0)
  Else
    FileExists = False
  End If

End Function


Ich hab's auch mal als Makro angehangen, du musst es nur so anpassen, dass eben der Name der Eigenschaft eingetragen wird, wie sie bei dir heißt.

Ciao und schönes Wochenende,
Stefan

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

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

TZ777
Mitglied


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

Beiträge: 4
Registriert: 06.04.2005

erstellt am: 29. Apr. 2005 12:24    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

Jo danke,

werde es im laufe des Tages austesten.

Euch allen auch noch ein schönes Wochende!!!

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

GunnarHansen
Mitglied
Engineer


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

Beiträge: 752
Registriert: 16.09.2009

Creo Parametric 9.0.5.0
Creo View 9.1
Windchill 12.1.0.3-6.0.0
Google Chrome
Lenovo Thinkpad P15
3DConnexion Wireless SpaceMouse

erstellt am: 14. Jun. 2012 13:59    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 TZ777 10 Unities + Antwort hilfreich

ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!


Hallo Stefan.
Ist das Macro immer noch lauffähig, glaubst du.

Ich kriege das nicht hin. Was muss ich ändern? Eigenschafft=properties?? Und welche/wo?
Nicht einfach mit meiner englischen Version....

mfG Gunnar

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: 14. Jun. 2012 14:14    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 TZ777 10 Unities + Antwort hilfreich


07673_beispiel-znr-property.png

 
Hallo GunnarHansen,

Zitat:
Original erstellt von GunnarHansen:
Ist das Macro immer noch lauffähig, glaubst du.

Ja, sicher. SolidWorks hat die angenehme Eigenschaft an den APIs nichts zu ändern sondern nur neue dazuzumachen, deswegen sind selbst 7 Jahre alte Makros in der Regel noch lauffähig (wenn man es denn versionsunabhängig gemacht hat). In diesem Fall bin ich mir sicher, ich hab es gerade noch mal runtergeladen und probiert.

Zitat:
Original erstellt von GunnarHansen:
Ich kriege das nicht hin. Was muss ich ändern? Eigenschafft=properties?? Und welche/wo?
Nicht einfach mit meiner englischen Version....

Was bekommst du nicht hin?

Verstehst du, was da Makro macht? Es sucht sich eine konfigurationsspezifische Eigenschaft (configuration specific file property), dessen Name mit der Konstanten DRWNAME definiert ist (im Beispiel muss die Eigenschaft "znr" heißen, holt sich den Wert davon und versucht dies als Zeichnung zu öffnen.

Ohne diese Eigenschaft im Modell macht das Makro gar nix - d.h. es schmeißt eine Warnmeldung raus. Und ebenso, wenn es keine Zeichnung findet, die so heißt.

Ciao,
Stefan

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

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

GunnarHansen
Mitglied
Engineer


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

Beiträge: 752
Registriert: 16.09.2009

erstellt am: 14. Jun. 2012 14:51    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 TZ777 10 Unities + Antwort hilfreich

Hallo Stefan.

Ok es funzt ja! Super. Wenn die Zeicnung schon offen ist kommt sie aber nicht "nach vorne". Das war bei mir jetzt das Problem. Ist es möglich, das eine schohn offene Zeichnung nach vorne kommt?

Gunnar

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

GunnarHansen
Mitglied
Engineer


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

Beiträge: 752
Registriert: 16.09.2009

Creo Parametric 9.0.5.0
Creo View 9.1
Windchill 12.1.0.3-6.0.0
Google Chrome
Lenovo Thinkpad P15
3DConnexion Wireless SpaceMouse

erstellt am: 14. Jun. 2012 14:59    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 TZ777 10 Unities + Antwort hilfreich

Und noch eine Frage:

Fals dieser Parameter noch keinen Wert hat muss ich immer einen Wert eintasten.
Der wert muss immer gleich den Konfigurationsnamen sein. Ist es möglich ein Macro zu machen, der den Konfigurationsnamen liest und in den Parameter eingibt?

MfG Gunnar

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: 14. Jun. 2012 15:06    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 TZ777 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von GunnarHansen:
Ist es möglich, das eine schohn offene Zeichnung nach vorne kommt?

Klar, das geht mit SldWorks::ActivateDoc2

Zitat:
Original erstellt von GunnarHansen:
Der wert muss immer gleich den Konfigurationsnamen sein. Ist es möglich ein Macro zu machen, der den Konfigurationsnamen liest und in den Parameter eingibt?

Klar, Konfigurationsnamen kannst du auslesen mit Configuration::Name

Also alles klar, aber:

Zitat:
Original erstellt von StefanBerlitz:
normalerweise mach ich so etwas auch im Kundenauftrag, [...] aber da ich gerade die API-Umgebung der SW2006 ein bisschen testen wollte [...]

Der Betatest der 2006 ist vorbei  

Ciao,
Stefan


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

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

GunnarHansen
Mitglied
Engineer


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

Beiträge: 752
Registriert: 16.09.2009

erstellt am: 14. Jun. 2012 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 Nur für TZ777 10 Unities + Antwort hilfreich

Zitat:
--------------------------------------------------------------------------------
Klar, das geht mit SldWorks::ActivateDoc2
--------------------------------------------------------------------------------

Das verstehe ich nicht. Wie sieht das im .svp file aus?


--------------------------------------------------------------------------------
Klar, Konfigurationsnamen kannst du auslesen mit Configuration::Name
--------------------------------------------------------------------------------

Das verstehe ich gar nicht. Wie wo....


Aber was dazulernen möchte ich gerne.
Wenns geht......?

mfG Gunnar

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