Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Symbol aus externer Bibliotheksdatei austauschen

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 Autodesk Produkte
Autor Thema:  Symbol aus externer Bibliotheksdatei austauschen (229 mal gelesen)
ofencad
Mitglied
Konstrukteur


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

Beiträge: 29
Registriert: 30.10.2015

Windows 10 (64) + Inventor 2020

erstellt am: 24. Aug. 2023 14:54    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


Macro.txt

 
moin.

Ich habe ein kleines Problem.

Einzusetzende Symbole sind in einer externen Bibliotheksdatei (Bibliothek.idw) im Netzwerk abgelegt, um diese jedem zur Verfügung stellen zu können.
Nun kann es sein, dass sich beispielsweise Norm-Angaben verändern, und diese Texte (in den Symbolen) dann aktualisiert werden müssen.

Es besteht di Möglichkeit, dass man eine ältere Zeichnung aufruft, und sich dort ein solches Symbol befindet. - Diese möchte ich mit einem Macro tauschen (mit der aktuellsten Version, wenn vorhanden).

Ich kann die Position des Symbols ermitteln.
Ich kann dieses Symbol löschen.
Ich kann an der gleichen Stelle das Symbol neu einsetzten.

Hier wird jedoch immer das schon vorhandene (aber zuvor gelöschte) Symbol aus den Zeichnungsresourcen genutzt.

Wie kann ich meinem Macro klarmachen, dass er das (externe) Symbol aus der Bibliotheksdatei verwenden soll?

Für Lösungsansätzen wäre ich Euch dankbar.

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 718
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 25. Aug. 2023 08: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 ofencad 10 Unities + Antwort hilfreich

Servus,

wenn der Name des Symbols gleich bleibt (genauer der Name der Definition) UND alle Exemplare des Symbols in der Zeichnung auf "aktuell" gestellt werden sollen, dann ist es relativ einfach möglich: Es reicht die Definition zu ersetzen.

Das klappt übrigens auch von Hand: Definition in den Zg.Ressourcen kopieren, auf dem Ordner Skizzensymbole der Ressourcen der Ziel-idw einfügen. Ist der Name schon da, wird gefragt ob überschrieben werden soll -> das ändert alle Exemplare.

Per Makro

Code:
Function SymbDef_aus_Template(oIDW As DrawingDocument, sSymbName As String) As SketchedSymbolDefinition
' fügt eine SketchedSymb.Definition in eine idw ein
' sollte gleichnamiges Symbol bereits vorh sein, wird überschrieben -> kann also ggf. auch zum Aktualsieren genutzt werden
'
' oIDW:        Zg.Document in das das Symbol eingefügt wird
' sSymbName:    Name des Symbols
'
' KraBBy 22.11.2018

    Const sIDW_Vorlage As String = "C:\...\Norm.idw"  '##### Anpassen! #####
                                                                                         
   
    'neue idw aus Vorlage öffnen
    Dim oVorlage As DrawingDocument
    Set oVorlage = ThisApplication.Documents.Add(kDrawingDocumentObject, sIDW_Vorlage, False) 'Visible = False
   
    'Symb.Def finden
    Dim oSkSymbDef As SketchedSymbolDefinition
    On Error Resume Next
    Set oSkSymbDef = oVorlage.SketchedSymbolDefinitions.Item(sSymbName)
   
    If 0 = Err.Number And Not oSkSymbDef Is Nothing Then
        'Symb gefunden
        On Error GoTo 0
        'kopieren
        Set SymbDef_aus_Template = oSkSymbDef.CopyTo(oIDW, True)    'Rückgabewert
            'dabei ReplaceExisting = True
    Else
        'Symbol mit dem Namen nicht vorhanden
        On Error GoTo 0
        Set SymbDef_aus_Template = Nothing      'Rückgabewert
    End If
   
    'Vorlage schließen
    oVorlage.Close (True)
   
End Function


------------------
Gruß KraBBy

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

ofencad
Mitglied
Konstrukteur


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

Beiträge: 29
Registriert: 30.10.2015

Windows 10 (64) + Inventor 2020

erstellt am: 14. Sep. 2023 13: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

Besten Dank, KraBBy!

Nach entsprechenden Anpassungen an meine Gegebenheiten, läuft das Makro so, wie ich es mir erhofft hatte.

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