Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Hilfe bei Erstellung von Block

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:  Hilfe bei Erstellung von Block (904 mal gelesen)
JennyintheBlock
Mitglied
Entwicklungsingenieur

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

Beiträge: 9
Registriert: 18.01.2018

erstellt am: 01. Feb. 2018 10: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

Hallo Community,

ich muss mich damit jetzt wieder an euch wenden. Mit meinen Recherchen und den Anfängerkenntnissen in VBA komme ich einfach nicht weiter  Bei uns ist leider auch keiner angestellt, der mir sagen könnte wie es geht. Aber ich bin mir sehr sicher, dass da draußen jmd ist der mir im Handumdrehen helfen kann 
Ich will eigentlich einfach einen Block erstellen mittels VBA. Mit einem Code habe ich bereits einen Block erstellt aber darin werden mir keine Objekte angezeigt. Kann mir einer verraten, wie ich da Objekte hineinbekomme? Im Idealfall sollte der Nutzer die Objekte vorher auswählen können 

    Dim blockObj As AcadBlock
    Dim blockname As String
    Dim InsertPoint As Variant

        blocname = (Z.B. Test 3 oder so, das ist erstmal egal)
        InsertPoint = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
    'Creat a Block
        Set blockObj = ThisDrawing.BLOCKS.Add(InsertPoint, blockname)
        MsgBox blockObj.Name & " wurde als Block hinzugefügt."

LG
Jenny

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 01. Feb. 2018 12:50    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 JennyintheBlock 10 Unities + Antwort hilfreich

Hallo Jenny,

Der Autocad Block ist eigentlich nur der Speicherbehälter für die Zeichnungselemente, vergleichbar dem Model oder einem  Layout. D.h. Du mußt zunächst den Speicherbehälter definieren, wie man das macht siehst Du hier .
Anschließen muß dieser Block als Blockreferenz noch in die Zeichnung eingefügt werden damit man ihn auch sieht.

Für Deine gewünschte Vorgehensweise machst Du Dir am besten einen Selectionset und fügst dann alle Elemente dem Block hinzu.

Verstehe aber gerade nicht warum Du den Block-Befehl nachprogrammieren willst ...

Grüße
Klaus 

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

JennyintheBlock
Mitglied
Entwicklungsingenieur

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

Beiträge: 9
Registriert: 18.01.2018

erstellt am: 01. Feb. 2018 13:04    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 Klauß,

danke für deine Antwort!

Selectionset, Entity, Handle, Utility, ..das alles habe ich schon irgendwie versucht aber bin dabei erfolglos geblieben.

Das was ich vor habe ist eigentlich ganz einfach. Aber für meinen Wissenstand und Erfahrungswert kompliziert.
Die ganze Zeichnung soll in den Block. Gibt es dafür einen Befehl oder etwas ähnliches?

Wäre sehr dankbar, wenn mir jmd mit mehr Wissen und Erfahrung als ich es habe da weiterhelfen kann 

LG
Jenny

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

runkelruebe
Ehrenmitglied V.I.P. h.c.
Straßen- / Tiefbau



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

Beiträge: 8075
Registriert: 09.03.2006

sw:
Win7-x64
Office 365 ProPlus
C3D (& LT )
ET; DACH; Extensions
-------------------
hw:
FX3800
i5 CPU 670
8GB RAM

erstellt am: 01. Feb. 2018 13: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 JennyintheBlock 10 Unities + Antwort hilfreich

>> Die ganze Zeichnung soll in den Block. Gibt es dafür einen Befehl oder etwas ähnliches?

>> WBLOCK << ?

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 01. Feb. 2018 13:50    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 JennyintheBlock 10 Unities + Antwort hilfreich

Wie bereits erwähnt gibt es hierfür zwei Varianten
Block : Erzeugt innerhalb der Zeichnung den Block aus den angewählten Elementen / der ganzen Zeichnung
WBlock: Speichert das ganze in eine neue Zeichnung

Wenn wirklich die ganze Zeichnung ein Block werden soll, hättest Du auch die Zeichnung über Einfügen in einer anderen Zeichnung aufrufen können. Der Dateiname wäre dann automatisch der Blockname.

Darf man Dir mal empfehlen die Ersten Schritte von Autocad durchzulesen?

Das sind eigentlich grundlegende Seiten die jeder kennen sollte ...
(Programmierung ist da schon ein anderes Thema, aber auch hier ist die Einführung in VBA für Autocad Grundvoraussetzung)

Grüße
Klaus  

[Diese Nachricht wurde von KlaK am 01. Feb. 2018 editiert.]

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

JennyintheBlock
Mitglied
Entwicklungsingenieur

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

Beiträge: 9
Registriert: 18.01.2018

erstellt am: 01. Feb. 2018 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

Hallo Runkelruebe,

eher weniger.
Auf diesem Weg muss ich ja auch alle Objekte auswählen, den Namen eingeben, etc.

Es müsste eine Prozedur her, in der ich den Namen und die Auswahl der Objekte für den Block vorgebe, um diese nicht immer auswählen zu müssen.

        ' Add all objects to the block
        Dim Obj As AcadObject
        'Obj =... Wie kann ich alle Objekte der Zeichnung hier zuweisen?
        'Dann kann Obj zum Block hizugefügt werden
        'Set Obj = blockobj...(InsertPoint, blockname)

LG

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

JennyintheBlock
Mitglied
Entwicklungsingenieur

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

Beiträge: 9
Registriert: 18.01.2018

erstellt am: 01. Feb. 2018 14:08    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

Klauß!

OMG danke  !!!Das wusste ich noch gar nicht.
Da hab ich wohl nicht gut genug aufgepasst als wir die Grundlagen durchgenommen haben...

Vielen Dank 

P.S.: Kompliziert Denken ist nicht einfach...

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

runkelruebe
Ehrenmitglied V.I.P. h.c.
Straßen- / Tiefbau



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

Beiträge: 8075
Registriert: 09.03.2006

sw:
Win7-x64
Office 365 ProPlus
C3D (& LT )
ET; DACH; Extensions
-------------------
hw:
FX3800
i5 CPU 670
8GB RAM

erstellt am: 01. Feb. 2018 14:15    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 JennyintheBlock 10 Unities + Antwort hilfreich

>> Auf diesem Weg muss ich ja auch alle Objekte auswählen, den Namen eingeben, etc.

Ähm, nein?

>> Dialogfeld WBLOCK << Beachte die Optionen der Quelle. (Mitte: "Gesamte Zeichnung", das hast Du zumindest vorhin noch gewollt ;-))
Desweiteren: >> Befehl -WBLOCK << Beachte das vorangestellte - vor dem Befehl >> Befehlszeilenversion. Optionen: "* . Die gesamte Zeichnung wird in die neue Ausgabedatei geschrieben. "
Das könnte z.B. in ein buttonmakro, ist die bedeutend kleinere Kanone für diesen Spatz ;-)

Code:
filedia;0;-wblock;"NAMEderNEUENdwg";*;filedia;1;

Aber ich sehe grad, dass das alles gar nicht nötig war, weil basics ACAD fehlten. Macht nix, KlaK hatte zum Glück die Säge für den Wald dabei.
Bis zum nächsten Mal dann   

PS: der WBLOCK-Befehl ist nebenbei ein nützliches Aufräumwerkzeug, da dabei nur noch die Elemente mitkommen, die wirklich benötigt werden. Sehr gern genommen im Rahmen des Vollwaschgangs von vermurkelten Zeichnungen, neben _purge, _audit und _recover.
Vergleich einfach mal die Zeichnungsgrößen der Ursprungs-DWG und der per wblock erzeugten.

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

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