Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Block mit vb in Paperlayout schreiben

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Block mit vb in Paperlayout schreiben (605 mal gelesen)
KasparKnopf
Mitglied


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

Beiträge: 4
Registriert: 06.06.2006

erstellt am: 06. Jun. 2006 21: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

Hallo zusammen,

ich möchte gerne mit vb6 einen Block in den Layoutbereich schreiben, was mir auch schon gelungen ist, nur habe ich den sicheren Zugriff auf den Paperspace noch nicht recht im Griff.

Mit folgenden Zeilen Frage ich alle aktuellen Layouts einer Zchng ab,
was super funktioniert und schreibe sie dann in eine Listbox.

  For i = 0 To acadDoc.Layouts.count - 1
        List1.AddItem (acadDoc.Layouts(i).Name)
  Next i

Dann waehle ich einige Layouts und moechte dann in diese immer
den gleichen Block einfuegen.
Das Einfuegen über acadDoc.Layouts ist mir nicht gelungen, dafuer
mit objBlocks = acadDoc.Blocks
Das Problem ist nun, dass ich den Link zwischen der Layoutvariante (wie oben erwaehnt und der objBlocks-Variante finde)
Dh.
objBlocks(i).InsertBlock() kann ich nur ueber die Variable i, das Blockelement ansprechen, aber wie kommen ich denn auf diese Nummer?

  'Alle Blöcke einsetzen
  Set objBlocks = acadDoc.Blocks

  If (BlockName <> "") And dokCADoffen Then
  For i = 0 To List1.ListCount - 1
    If List1.Selected(i) Then
        Set blockRefObj = objBlocks(i).InsertBlock(insertPnt,_
        BlockName, xs, ys, zs, rotation)
      End If
    Next
  Else
      MsgBox ("Bitte einen Block wählen!")
  End If

Das groesste Problem mit der acadDoc.Blocks - Variante habe ich,
wenn sich in der Zeichnung zusatzliche Bloecke befinden, dann
stuerzt mein Programm immer ab.
Ettliche Versuche wie auch mit einer If-Abfrage ein Null-Objekt
abzufangen waren vergeblich.

Kann mir da vielleicht jemand einen guten Rat geben.

Wie kann ich die Paper- und ModelSpaces unter kontrolle haben
und darauf frei zugreifen respektive Objekte einfuegen.

Hoffe da draussen im unendlichen Datenmeer findet sich doch noch
jemand der mir da helfen kann.

Vorerst mal vielen Dank und Viele Gruesse

Kaspar

der Verzweiflung nahe

 

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 07. Jun. 2006 07:01    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 KasparKnopf 10 Unities + Antwort hilfreich

Hi Kaspar,

Da es sich um AutoCAD dreht würde ich die Frage Mal hier im AutoCAD VBA-Forum stellen. Dort sind auch einige, die mit VB arbeiten.

Gruß, Carsten

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 07. Jun. 2006 13: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 Nur für KasparKnopf 10 Unities + Antwort hilfreich

Hi Kaspar,

denke auch, das Acad/VBA Brett wäre besser, aber nixdestotrotz hier mal zwei kleine Ansätzelchen;-)

Code:

Sub viaBlock()
    Dim blo As AcadBlock, p#(2)
    For Each blo In ThisDrawing.Blocks
        If blo.IsLayout Then
            If blo.Layout.Name = "Layout_1" Then _
            blo.InsertBlock p, "testblock", 100, 100, 1, 0
        End If
    Next
End Sub

Sub viaLayout()
    Dim p#(2)
    ThisDrawing.Layouts("Layout_1").Block.InsertBlock p, "testblock", 100, 100, 1, 0
End Sub



HTHHope this helps (Hoffe, es hilft weiter) Nancy

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

KasparKnopf
Mitglied


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

Beiträge: 4
Registriert: 06.06.2006

erstellt am: 07. Jun. 2006 18:33    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


Vielen Dank Ihr zwei,

besonders an Nancy fuer Deine Ruecksicht.

Natuerlich werde ich falls es zu einer weiteren Frage zum gleichen
Thema kommt, was ich nicht ausschliesse, im richtigen Forum
versuchen.

Nun werde ich mich mal begierieg auf die analyse des Codes stuerzen.

Vielen Dank nochmals

Kaspar

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

KasparKnopf
Mitglied


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

Beiträge: 4
Registriert: 06.06.2006

erstellt am: 07. Jun. 2006 20: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

Hat super geklappt.

War selber nahe dran aber habe insertBlock() immer mit
Klammern geschrieben, ja, das geht so halt nicht.

Tschuess

Fabian

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