Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  mehrere Layouts mit Schriftfeldern

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  mehrere Layouts mit Schriftfeldern (1509 mal gelesen)
vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 22. Nov. 2012 23:35    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

Liebes Forum,
Mittels VBA hab schreibe ich die Attribute einer Form in das Schriftfeld das in einem Layout vorhanden ist. Das funktioniert auch solange nur ein Layout vorhanden ist. Erstelle ich ein 2. Layout das dasselbe Schriftfeld benutzt kann ich weder vom Schriftfeld Lesen oder ins Schriftfeld schreiben. Wie unterscheidet man in welches Schriftfeld man schreibt mit VBA code?

Danke für Eure Hilfe.

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4191
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 23. Nov. 2012 14: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 vittorio0 10 Unities + Antwort hilfreich

Hallo vittorio,

was verstehst du in diesem Zusammenhang unter einem Schriftfeld?
Meinst du das Objekt: Field oder eine Blockreferenz, bei welcher du die Attribute füllst?

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 23. Nov. 2012 14:57    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 Holger

Mit Schriftfeld meine ich Zeichnungskopf, ein Block mit Attributen.
Dieser Block ist in mehreren Layouts mit dem gleichen Namen vorhanden.

Gruss und danke für die Hilfe
Vittorio0

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4191
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 23. Nov. 2012 15: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 vittorio0 10 Unities + Antwort hilfreich

... und wie greifst du auf die Blockreferenz zu? Da wäre mal ein Code-Ausschnitt ganz gut, um zu sehen, von wo du die ObjectId der zu bearbeitenden Blockreferenz holst und wie du dann auf die Attribute zugreifst.
(So ganz kann ich mir nicht erklätren, weshalb das Hinzugügen einer weiteren Blockreferenz dazu führen soll, dass nichts mehr zu ändern geht ???)

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 24. Nov. 2012 17:25    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 Holger

Hier der code der mit einem Layout funktioniert. Wenn ich wüsste wie man sagt ins aktuelle Layout schreiben, würde das funktionieren.

Code:
Private Sub btnAttrToDwg_Click()
' Editierte Attribute zurück in Block schreiben
' MsgBox "Schriftfeldname zur Zeichnung " & ThisDrawing.GetVariable("dwgname"), vbInformation, "Schriftfeldname ist: " & SF
' Update the attribute values


On Error GoTo err_control

Dim EntGrp(1) As Integer
Dim EntPrp(1) As Variant
EntGrp(0) = 0
EntPrp(0) = "INSERT"
EntGrp(1) = 2
EntPrp(1) = "SF1,SF2" ' Schriftfeld SF1 oder SF2 suchen

' create a selection set
  On Error Resume Next
  Set ssnew = ThisDrawing.SelectionSets("TBLK")
  If Err.Number Then
    Set ssnew = ThisDrawing.SelectionSets.Add("TBLK")
  End If
  On Error GoTo 0
   
  ' finde den Block
  ssnew.Select acSelectionSetAll, , , EntGrp, EntPrp
 
  'If a block is found
  If ssnew.Count >= 1 Then
    MsgBox "Es sind " & ssnew.Count & " Blöcke in der Zeichnung vorhanden.", vbInformation, "Gefundene Blöcke..."
    Else
        MsgBox "kein Schriftfeld gefunden.", vbInformation, "update Schriftfeld..."
    Exit Sub
  End If
     
  'Get the block's attributes
    tatts = ssnew.Item(0).GetAttributes
    SF = ssnew.Item(0).Name
      SF = UCase(SF)
   
 
' Show message
    Select Case SF
        Case "SF2", "SF2"
          'MsgBox SF & " wurde gefunden.", vbInformation, "Name des Schriftfeldes: " & SF
    End Select

Select Case SF

    Case "SF1"

        'MsgBox "SF1 erkannt", , "SF1 wird geschrieben..."

      tatts(0).TextString = Nz(frmEditAttr.F0.Text, "")  'Zeichnungsnummer
      tatts(1).TextString = Nz(frmEditAttr.F2.Text, "")  'Titelzeile
      tatts(2).TextString = Nz(frmEditAttr.F39.Text, "")  'Untertitel 1
      tatts(3).TextString = Nz(frmEditAttr.F52.Text)   'Untertitel2
      tatts(4).TextString = Nz(frmEditAttr.F3.Text)      'Zeichnungspfad 
      tatts(5).TextString = Nz(frmEditAttr.F62.Text, "")  'Zeichner


    Case "SF2"

      'MsgBox "SF2 gefunden", , "Schriftfeld SF2 wird geschrieben..."


.
.
.
' usw


End Select

    'update the block
    ssnew.Item(0).Update
    Me.Infoline = "Attribute wurden in den Zeichnungskopf  übertragen und Zeichnung gesichert"
    ThisDrawing.Save
   
exit_sub:
Exit Sub


err_control:

MsgBox Err.Number & " : " & Err.Description & " in Routine btnAttrToDwg_Click()"
Me.Infoline = "Fehler beim Schreiben zur Zeichnung..."
GoTo exit_sub
End Sub


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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4191
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 24. Nov. 2012 19:58    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 vittorio0 10 Unities + Antwort hilfreich

Hallo,
Du musst einen SelectionSet-Filter definieren, der nur auf dem aktuellen Layout sucht. Das müsste der 410 er Gruppencode sein, das aktuelle Layout bekommst du über ein SysVar clayout?
Grüße
holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 02. Dez. 2012 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,
wie würde ich so ein SelectionSet-Filter definieren, dass in meinem Beispiel nur im jeweiligen activen Layout die in der Liste aufgeführten Blockreferenzen gefunden werden? So wie der code jetzt ist, nimmt er immer das letzte Layout, egal ob ich in Layout1, 2 oder 3 bin.

Besten Dank!

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4191
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 02. Dez. 2012 22:00    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 vittorio0 10 Unities + Antwort hilfreich

... Schau dir mal den anderen Beitrag an, der gerade in diesem Forum
Diskutiert wird.
Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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)2025 CAD.de | Impressum | Datenschutz