Hot News:
  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Auslesen von Blockeigenschaften mittels VBA möglich? (Seite 8)

  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Thema geschlossen  Thema geschlossen!
UBBFriend: Senden Sie diese Seite per eMail an einen Freund!
Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen Dieses Thema ist 10 Seiten lang:   1  2  3  4  5  6  7  8  9  10

nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Auslesen von Blockeigenschaften mittels VBA möglich? (12901 mal gelesen)
kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 02. Nov. 2004 16: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
Mal angenommen ich will so einen Mast zusammenbauen, dann muß ich das bisher folgendermaßen manuell tun:

- Ich lege eine neue Datei an, den sogenannten Mastplan.
- nun soll dort drin der Mast zusammengebaut werden
- ich muß nun aus dem Bauteilkatalog die Einzelteile, welche Blöcke
  sind, raussuchen
- es geht mit dem Mast los, dieses Einzelbauteil hat Markierungen,
  wo die anderen Teile - Fuß, Fundament usw - angefügt werden müssen
- danach richte ich mich und setze die Blöcke an die entsprechenden
  Stellen

Das ist der manuelle Ablauf, wie er hier in der Planungsabteilung jeden Tag geschieht. Da das aber mühselig ist, wünscht man sich eine Automatisierung.

Da die Einzelteile nun alles Blöcke sind, dachte ich mir, mit Hilfe ihrer Eigenschaften - z.B. dem Basispunkt - ein Zusammensetzen hinzubekommen. Ich muß also im VBA-Programm irgendwie z.B. den Basispunkt des Blockes "Mastfuß" ansprechen und ihm z.B. sagen, schiebe den Block an den Anbindepunkt des Mastes. So meine Vorstellung. Also über die Basispunkte der Blöcke könnte eine Steuerung und Bewegung der Blöcke geschehen... Und deshalb nahm ich an, dass man erstmal die Eigenschaften des Blocks auslesen muß, damit man mit denen weiterarbeiten kann?


K

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 603
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 02. Nov. 2004 15: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
Ich glaub jetzt weiß ich, wo unser Problem liegt.

Blockattribute sind zusätzliche Informationen, die man einem Block mitgeben kann. Das können bei einem Mast wie deinem zum Beispiel ein Nummer, eine Höhe, eine Mastart, eine Bemerkung, ein Auftelldatum usw. sein. In einer Blockdefinition sind diese festgelegt und beim einfügen eines Blockes in eine Zeichnung, kann man diese Attribute mit eingeben.

Eine Eigenschaft eines Blockes ist zum Beispiel der Einfügepunkt, die Farbe, der Lienientyp, Plotstil usw.. Also Eigenschaften, die jedes Zeichenelement in AutoCAD hat. Und sowas meinst Du wohl, oder??

Wenn ich Dich jetzt richtig verstehe, dann möchtest Du den Einfügepunkt des Mastes ermitteln und auf diesen Punkt festlegen, welche weiteren Blöcke mit auf diesen Einfügepunkt gezeichnet werden sollen. Richtig??? Und diesen Einfügepunkt möchtest Du in die Ausgabedatei geschrieben haben???


Gruß TP

------------------

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 02. Nov. 2004 15:39    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
Danke für die Tipps.

Trotzdem ist es vielleicht besser, wenn ich nochmal genau erkläre, was ich eigentlich will und wofür ich es brauche, also:

ich arbeite in einem Unternehmen, welches Mobilfunkmasten für die vier deutschen Mobilfunkanbieter plant. Die Anbieter geben einem dabei gewisse Richtlinien vor, wie die Zeichnungen auszusehen haben und stellen auch einen Bauteilkatalog zur Verfügung. Dieser beinhaltet - um es hier mal einfach darzustellen - z.B. die "leeren" Masten, ihre dazugehörigen Mastfüße, entsprechende Fundamente, Antennen, Halterungen für diese Antennen usw.
Alle Einzelteile sind Blöcke und es gibt davon unzählige Dateien im Bauteilkatalog. Z.Zt. läuft es so ab, dass manuell alle Teile in einem sogenannten Mastplan zusammengefügt werden müssen, damit der eigentliche Mast komplett ist.
Das Ziel ist nun, dies zu automatisieren und meine Aufgabe ist es, dafür einen Mastkonfigurator mit VBA in AutoCAD zu entwickeln. Im Prinzip soll es so ablaufen. Man öffnet eine neue dwg-Datei und holt mit dem Konfigurator aus dem Bauteilkatalog die Teile. Ganz einfach per Mausklick im Menü sollen die Teile gewählt werden und automatisch zu dem Gesamtgebilde zusammengefügt werden.

Unsere Überlegung war nun, dass man mit Hilfe der Blockattribute die Einfügepunkte (wo die Teile zusammengefügt werden) ansprechen muß. Jeder Block hat ja z.B. einen Basispunkt, den man zum anfügen benutzen könnte. Bloß das muß jetzt irgendwie programmiertechnisch umgesetzt werden bzw. die Attribute ausgelesen werden, dachte ich mir. Um die Teile - welche alle Blöcke sind - zusammenzusetzen, sind ja sicher die Blockattribute zur weiteren Verarbeitung notwendig.

Vielleicht konnte ich Dir durch diese kurze Erklärung in etwa rüberbringen, was ich eigentlich will.

K

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 603
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 02. Nov. 2004 15:14    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
>Also wenn ich einen Haltepunkt an der If-Stelle setze, dann durchläuft er beim Einzelschrittablauf trotzdem die Schleife. Was bedeutet das denn nun genau?

Das bedeutet, das er Blockreferenzen findet, aber es keine Attribute an den Blöcken gibt, die würde er ja sonst in die Textdatei schreiben.


>Und wenn ich einen Block doppelt anklicke, dann öffnet er mir das Fenster "Referenz bearbeiten" und zeigt mir links den Referenznamen an.

Dieses Fenster kommt immer, wenn es keine Attribute gibt.


>Im unteren Bereich des Fensters ist aber die Checkbox "Attributdefinitionen zum Bearbeiten anzeigen" deaktiviert.

Die Attribute, kann man ja unsichtbar oder sichtbar an einen Block hängen. Deine müßten mit deinen Einstellungen folglich sichtbar sein. Da die Checkbox ja deaktiviert ist.


Also ich würd so ganz spontan aus dem Bauch heraus sagen, das es sich bei deinen Attributen nicht um Attribute handelt, sondern um ganz normalen Text, der einfach nur in der Zeichnung visuel dem Block zugeordnet ist, aber mit diesem nicht verknüpft ist. Und somit kann das Programm natürlich auch keine Attribute finden.

Gruß TP

------------------

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 02. Nov. 2004 15: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
Also wenn ich einen Haltepunkt an der If-Stelle setze, dann durchläuft er beim Einzelschrittablauf trotzdem die Schleife. Was bedeutet das denn nun genau?

Und wenn ich einen Block doppelt anklicke, dann öffnet er mir das Fenster "Referenz bearbeiten" und zeigt mir links den Referenznamen an. Im unteren Bereich des Fensters ist aber die Checkbox "Attributdefinitionen zum Bearbeiten anzeigen" deaktiviert. Hat das was zu bedeuten?

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 603
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 02. Nov. 2004 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
Hallo kiltswitch,

das das Programm läuft hat ja noch lange nicht zu sagen, dass er die Schleife auch durchläuft. Setze doch einfach mal einen Haltepunkt in die Zeile der If - Anweisung und dann kuckst, ob er gleich zu End If springt oder ob er durch die Schleife geht. Wenn er wirklich durch die Schleife gehen sollte, dann sind keine Attribute dran.
Probier das aber nur mit zwei drei Blöcken, oder Du brichst das Prog einfach ab. Was mir gerade einfällt, wenn Du einen Doppelklick auf einen solchen Block machst, siehst Du dann die Attribute?

Gruß TP

------------------

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 02. Nov. 2004 14:39    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
Nun, ich glaube das muß ich mir mehrmals durchlesen, bevor ich es verstanden habe... :-( So richtig verstehe ich den Unterschied noch immer nicht. Es klingt irgendwie alles gleich und ist dadurch verwirrend. Ich arbeite nun schon mehrere Jahre mit AutoCAD und auch mit Blöcken und mir war gar nicht bewußt, dass es da solche Unterschiede gibt. Für mich war Block bisher Block...

Ja das mit der Schleife läuft jetzt. Also ich denke es zumindest mal, weil er beim kompilieren keine Fehler mehr bringt. Es funktioniert soweit ja alles, nur in die Textdatei schreibt er nichts rein. Ob das nun richtig sein kann, weiß ich nun nicht?

K

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 603
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 02. Nov. 2004 14: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 kiltswitch,

eine Blockdefinition ist ein Block, den Du in eine Zeichnung über Einfügen -> Block in die Zeichnung eingefügt hast. Er ist aber deshalb noch nicht gezeichnet. Du definierst praktisch nur einen Blocknamen und sagst AutoCAD, dass dieser Name mit der jeweiligen DWG assoziiert werden soll. Wenn Du nun hergehst und den ebend definierten Block in die Zeichnung einfügst, dann hast Du eine Referenz auf die Definition gezeichnet. Die Referenz zeigt praktisch immer auf die jeweilige Definition. Weist Du einer Definition eine andere Zeichnung zu, kannst Du damit alle schon gezeichneten Blöcke (Referenzen) mit dem neuen Block aktualisieren. So ist die Theorie. Es funktioniert wohl auch .. 

Also eine Definition ist ein einmal festgelegter Block in der Zeichnung und es können mehrere Blockreferenzen (das sind die Blöcke, welche Du in deiner Zeichnung nachher tatsächlich siehst) festgelegt werden, die einfach nur einen Zeiger auf die Definietion haben.

Ich hoffe das ist so verständlich, ansonsten mal die Hilfe von AutoCAD bemühen.

Läuft das Programm denn nun in Schleife rein oder nicht???

Gruß TP

------------------

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 02. Nov. 2004 14:18    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
Blockreferenzen stellen doch die Blöcke dar, oder?
Attribute die Werte, welche der Block hat, also z.B. Koordinaten das Basispunktes, Drehwinkel usw.

Sehe ich das so richtig??

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

kiltswitch
Mitglied



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

Beiträge: 189
Registriert: 27.10.2004

Windows 98 (Version 4.10.1998)
AutoCAD 2000i

erstellt am: 02. Nov. 2004 14: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
Nun muß ich Dir leider als Laie die peinliche Frage stellen, was der genaue Unterschied zwischen Blockdefinitionen und Blockreferenzen ist...?

K

Zitat:
Original erstellt von BloodyMess:
Hallo kiltswitch,

dann kann ich Dir nichts weiter raten, ausser den Code auseinander zu nehmen und zu schauen, ob er in die Schleife reingeht und was da evtl. schief läuft. Der Code nimmt ganz sicher alle Blockreferenzen einer Zeichnung und deren jeweilige Attribute auseinander und speichert diese in der besagten Datei. Keine Blockdefinitionen, sondern Blockreferenzen!

Gruß TP


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

Anzeige:

Anzeige: (Infos zum Werbeplatz >>)

Dieses Thema ist 10 Seiten lang:   1  2  3  4  5  6  7  8  9  10

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag öffnen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum


(c)2011 CAD.de
-