Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Umbenennen von Blöcken verhindern

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
  
CAD/CAM-Workshop in Suhl-Friedberg: SolidCAM + SOLIDWORKS
Autor Thema:  API: Umbenennen von Blöcken verhindern (1695 mal gelesen)
Ralf Blokscha
Mitglied
Konstrukteur


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

Beiträge: 175
Registriert: 10.07.2000

erstellt am: 16. Apr. 2010 16: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 zusammen,

zur Zeit Beschäftige ich mich mit der Umstellung auf SWXSolidWorks 2010 SP 2.1.
Dabei werden div. selbst erstellt Tool getestet und habe nun einen Fehler gefunden an dem ich nicht weiter komme.

Wie im Thema schon erwähnt will ich beim Austausch des Blattformats per API auf mehreren Blättern, in der auch diese Blöcke enthalten sind, das umbenennen der Blöcke verhindern.

Hier ein Beispiel:

Es existiert in der Zeichnung mit mehreren Blättern und dem alten Blattformat ein Block "Schriftfeld".
In dem neuen Blattformat existiert ebenfalls der Block "Schriftfeld".
Wenn ich nun in der Zeichnung das Blattformat austauschen lasse wird der Block "Schriftfeld" zu "Schriftfeld_1" umbenannt. Wie kann ich das verhindern.

Wenn ich das Blattformat manuell austausche kommt eine Abfrage ob die Blöcke umbenannt werden sollen, dort kann ich dann auf Nein klicken und alles bleibt wie es war.

Kann mit jemand einen Hinweis geben an welcher stelle noch was dazu muß?

Hier noch die API:
Private Sub Blattformat_tauschen()

    Dim View As Object
    Dim InfoCount As Long
    Dim InfoNames As Variant
    Dim ModName As String
    Dim Zeichnung As String
    Dim k As Long
    Dim errors As Long
    Dim Länge As String
    Dim dummy
    Dim res As Long
    Dim SheetFormat As String
    Dim LayerMgr As Object
    Dim Layer As Object

    Set swApp = CreateObject("SldWorks.Application")
    swApp.Visible = True
    Set Model = swApp.ActiveDoc
    Set LayerMgr = Model.GetLayerManager

    If Not Model Is Nothing Then
        InfoCount = Model.GetCustomInfoCount2("")            ' wieviele Benutzerdef. Eigenschaften im akt. Teil?
        InfoNames = Model.GetCustomInfoNames2("")            ' Alle Namen der Benutzerdef. Eigenschaften in ein Variant einlesen
            For k = 0 To InfoCount - 1                      ' Schleife durch alle Benutzerdef. Eigenschaften
                InfoNames(k) = "Blattformat" 'Or Left(InfoNames(K), 4) = "MARA" Then
                dummy = Model.AddCustomInfo("Blattformat", "Text", "")
            Next k
    End If
   
    If (Model.GetType() = swDocDRAWING) Then
        res = LayerMgr.DeleteLayer("Default_1")
        res = LayerMgr.DeleteLayer("Default_2")
        res = LayerMgr.DeleteLayer("Default_3")
    Else
    End If
   
    SheetFormat = Model.CustomInfo("Blattformat")

    If (Model.GetType() = swDocDRAWING) Then
        If Not SheetFormat = LoadResString(2000) Then
            Mldg = LoadResString(128) + (Chr(10)) + LoadResString(129)
            Stil = vbYesNo + vbQuestion + vbDefaultButton2
            Titel = LoadResString(131)
            Antwort = MsgBox(Mldg, Stil, Titel)
                If Antwort = vbYes Then
                    Reload_sheetformat
                    Model.CustomInfo("Blattformat") = LoadResString(2000)
                    MsgBox LoadResString(141) + (Chr(10)) + LoadResString(142), vbOKOnly, LoadResString(143)
                End If
        End If
        LayerAusblenden
    End If
 
'Exit Sub

End Sub


@ Stefan  : falls dir der SourceCode irgendwie bekannt vorkommt, da hast du mir damals sehr viel geholfen.

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

Ian Malcom
Mitglied
Konstruktion


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

Beiträge: 45
Registriert: 27.11.2002

Win7 x64 Pro SP1
2x Xeon(R) E5-2620 v3
32 GB Ram
Quadro K4200

erstellt am: 15. Jul. 2016 12:23    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 Ralf Blokscha 10 Unities + Antwort hilfreich

Bin gerade über das selbe Problem gestolpert ... keiner einen Tipp?

Gruß Ian, Malcom


------------------
"Auf der Schachtel stand WIN98, WIN2000 oder besser. Also habe ich mir einen MAC besorgt ..."

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