![]() |
![]() |
|||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
Download einer kostenlosen BricsCad-Demoversion (Vollversion für 30 Tage ab Installation) |
||||||||||||||||||||||||||||||||||||||||||
|
!!! Bitte beachten: Nachfolgende Ausführungen gelten nur für BricsCad bis V7. Seit V8 VBA weitestgehend kompatibel zu AutoCAD!!! |
||||||||||||||||||||||||||||||||||||||||||
|
Häufig steht man vor der Aufgabe, Koordinatendateien aus ASCII-Dateien oder auch
EXCEL-Listen in BricsCad zu importieren. Die können beispielsweise in der Vermessung oder bei Berechnungen entstanden sein. |
||||||||||||||||||||||||||||||||||||||||||
|
Public Sub BlockDefinition() |
Ähnlich wie im vorigenen Teil bei den Auswahlsätzen, fügen Sie hier zunächst der Blockliste Ihrer Zeichnung (“Doku.Blocks”) die Definition des Blocks mittels „Add“ hinzu. Damit ist der Block angelegt, aber erst in der nächsten Zeile („Set Kreis = Blo. …) wird er mit Elementen gefüllt. Analog dazu könnten Sie mit „AddXXX“ alle anderen Zeichnungsobjekte dieser Blockdefinition zuordnen. |
|||||||||||||||||||||||||||||||||||||||||
|
Public Sub BlöckeListen() |
||||||||||||||||||||||||||||||||||||||||||
|
Wie bei allen anderen Collection-Objekten bzw. Auflistungen ist es einfach möglich, mittels der For-Each-Schleife, auf jedes einzelne Element davon zu zu greifen: |
||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||
|
Im nebenstehenden Bild sehen Sie die in der Message-Box angezeigten Blöcke, in unserem Fall nur den gerade neu definierten Baum. Wurde so ein Block erst einmal definiert und ist damit Bestandteil der Zeichnung, können Sie ihn nun wie jeden anderen Block in BricsCad verwenden. Natürlich können Sie dafür auch VBA nutzen, indem sie eine Referenz auf den Block beliebig oft in ihre Zeichnung einfügen. Das erfolgt mittels der Methode „InsertBlock“ nach folgender allgemeiner Syntax: |
||||||||||||||||||||||||||||||||||||||||||
|
RetVal = object.InsertBlock(Einfügepunkt, Name, Xskalierung, Yskalierung, Zskalierung, Drehung [, PW]) |
||||||||||||||||||||||||||||||||||||||||||
|
Dabei ist der Einfügepunkt ein Datenfeld vom Typ Point für die Koordinaten der drei Achsen. X-, Y- und Z-Scale sind die Skalierfaktoren der jeweiligen Richtungen, die Drehung gibt den Einfügewinkel an und das Password (PW) kann optional angegeben werden. Nun zum Datenimport. Ausgangspunkt soll eine einfache ASCII-Datei sein. Um das Beispiel einfach zu halten, besteht sie aus lediglich zwei Spalten
mit der X- und Y-Koordinate des Einfügepunkts. Die beiden Werte trennen Sie mit einem Semikolon. |
||||||||||||||||||||||||||||||||||||||||||
|
Public Sub BaumImport() |
||||||||||||||||||||||||||||||||||||||||||
|
Zum Löschen von Blockreferenzen und Blöcken verwenden Sie die Delete-Methode. Wenn Sie also die vorherigen Definitionen benutzen geht das mit folgenden Beiden Zeilen: Set Blo = Doku.Blocks("Baum") Sollten Sie das Beispiel abarbeiten, nachdem Sie bereits die Koordinatendatei importiert haben, werden Sie vermutlich eine Fehlermeldung bekommen.
Denn ähnlich wie bei der BricsCad-Bereinigungsfunktion kann er nur gelöscht werden, wenn er nicht in der Zeichnung verwendet wird. Menü ---> Extras ---> Verweise… |
||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||
|
Es öffnet sich ein Fenster mit Verweisen auf alle eingebundenen Objektbibliotheken. Um auf Excel zuzugreifen, markieren Sie den entsprechenden Verweis in der Liste. Voraussetzung dafür ist natürlich, dass MS-EXCEL überhaupt auf Ihrem Rechner installiert ist. Der Verweis könnte bei Ihnen z.B. „Microsoft EXCEL 10.0 Object Library“ heißen. Die konkrete Versionsnummer hängt von der installierten Version ab. |
||||||||||||||||||||||||||||||||||||||||||
|
Das folgende Beispiel zeigt Ihnen, wie sie die Koordinaten aus so einer EXCEL-Tabelle auslesen. Die ersten beiden Zeilen der Deklaration kennen Sie bereits. Dann definieren Sie die EXCEL-Datei und die darin zu verwendende Tabelle. Nach der Deklaration ist mit Set WB = Excel.Workbooks.Open(C:\mappe1) die Datei zu öffnen. In der folgenden Zeile weisen Sie VBA an, die „Tabelle1“ zu verwenden. Nun endlich können Sie in der For-Next-Schleife auf die gespeicherten Daten zugreifen. Wtab.Cells(Zeile, Spalte) liefert ihnen den jeweiligen Wert. Im Beispiel übernehmen Sie die Informationen in die entsprechenden Felder der Einfügepunkt-Variablen, wobei der Z-Wert hier auf Null gesetzt ist. Das Einfügen der Blockreferenz geschieht dann, wie Sie es bereits kennen gelernt haben. |
||||||||||||||||||||||||||||||||||||||||||
|
Public Sub EXCEL_Import() |
||||||||||||||||||||||||||||||||||||||||||
|
Im zweiten Schritt wenden wir uns der Erzeugung von Polylinien zu. Dabei verwenden wir für unser Beispiel das Objekt „Polyline“. Alternativ könnte man auch die „LWPolyline“ nutzen. Folgende Syntax wird verwendet, um der Zeichnung eine Polylinie hinzuzufügen: RetVal = object.AddPolyline(Vertexliste) Das Objekt, dem Sie die Polylinie hinzufügen ist wahlweise der Modellbereich, Papierbereich oder ein Block. Die Methode zum Einfügen ist
AddPolyline. Zur Definition der Vertexliste kennt BricsCad das Objekt Points. Bitte beachten Sie die Mehrzahl. Im Gegensatz zu Einfügepunkten beispielsweise von Kreisen oder Blockreferenzen mit Point
(hier wird jeweils ein Koordinatentripel gespeichert), nimmt Points eine Liste von Kordinatenwerten auf. Punkte.Add
definiert zunächst einen weiteren Punkt in der Liste. Anschließend werden die entsprechenden Werte hinzugefügt. Nach dem Durchlauf der Schleife kann endlich mit die Polylinie erzeugt werden. In BricsCad ist sie erst nach einem Regen zu sehen. Das läßt sich mit PoLin.Update umgehen.Hier der komplette Code: |
||||||||||||||||||||||||||||||||||||||||||
|
Public Sub Polin_aus_EXCEL() |
||||||||||||||||||||||||||||||||||||||||||
|
Viel Spaß beim ausprobieren. Der nächste Teil wird sich ein wenig näher mit den BricsCad-Layern beschäftigen. |
||||||||||||||||||||||||||||||||||||||||||
|
IBB INGENIEURBÜRO BATTEFELD Bochum Nöckerstraße 37c |
||||||||||||||||||||||||||||||||||||||||||
|
Mit Fragen oder Hinweisen wenden Sie sich bitte an |
||||||||||||||||||||||||||||||||||||||||||
|
IBB INGENIEURBÜRO BATTEFELD Leipzig Brahestraße 17 |
||||||||||||||||||||||||||||||||||||||||||
|
Hydraulische Berechnungen - GIS - Vermessung - BricsCad V8 - Kartierung - AutoCAD - Autodesk MAP3D - DVGW - Vermessung - GPS - INTERGEO - Free Download von
BricsCad - IntelliCAD - BricsCad V7 - Programmierung - Energieversorgung - AutoLISP - VB - VBA - SQL - SYBASE SQL Anywhere - Individualprogrammierung - Gas - Wasser -
Strom - Fernwärme - Abwasser - Kanal - Kataster - Indirekteinleiterkataster - relationale Datenbanken - SICAD - Netzberechnung - STANET - AutoSTA - Schnittstellen - SQD - SQS - ALK - ALB - EBDS - ISYBAU - GRADIS - AutoCAD
|
||||||||||||||||||||||||||||||||||||||||||