| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PLM und ERP fest zusammengeschweißt - IDEAL-Werk , ein Anwenderbericht
|
Autor
|
Thema: AutoCad Punkte in Blöcke umwandeln (7383 mal gelesen)
|
GeoBrunner Mitglied
Beiträge: 14 Registriert: 03.03.2010 AutoCad Map3D 2008
|
erstellt am: 04. Mrz. 2010 15:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen! Ich habe folgendes Problem zu lösen: Ich habe eine Zeichnung mit 3D AutoCad Punkten und möchte diese in 2,5D Blöcke (Höhe als Attribut) umwandeln. Bitte um Unterstützung, falls dieses überhaupt möglich ist?!? Schöne Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 04. Mrz. 2010 15:42 <-- editieren / zitieren -->
Hi, herzlich willkommen bei CAD-de! Da wäre mal die naheliegende Frage, welches Produkt und welche Version hast Du denn. Es macht hier durchaus einen Unterschied, ob Du Map3D Funktionalität hast oder nicht. (Siehe auch Systeminfo ausfüllen: >>>klick<<<) - alfred - ------------------ www.hollaus.at |
GeoBrunner Mitglied
Beiträge: 14 Registriert: 03.03.2010 AutoCad Map3D 2008
|
erstellt am: 04. Mrz. 2010 15:47 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 04. Mrz. 2010 17:09 <-- editieren / zitieren -->
Hi Roman, Du kannst mit AutoCAD über die Funktion DATENEXTRAKT die Punkte in eine ASCII-Datei spielen lassen, diese ASCII-Datei dann mit Excel so umbauen, dass es ein Script wird, welches für jede exportierte Koordinate einen Block einsetzt und das Attribut HOEHE ausfüllt. Oder Du kannst diese Koordinatenliste auch per Map-Abfragefunktion erzeugen lassen (sorry, da hab ich mich verleiten lassen, der Weg Block ==> Punkt geht mit Map einfacher, Dein Weg Punkt zu Block geht in AutoCAD genauso wie mit Map). Oder Du verwendest beiliegendes DVB-File, aber auch hier gibt's ein wenig zu tun. Grundsätzliche vorgehensweise: DVB-File vom Windows-Explorer ins AutoCAD (Graphikbereich) hineinziehen und fallen lassen (das entspricht dem Laden der VBA-Module) Dann in Befehlszeile (probier das mal mit meiner Sample-Zeichnung): Befehl: -VBARUN Makroname: PointToBlock Objekte wählen: <hier wählst Du Deine Punkte> Das ganze läuft dann automatisch ab, so folgende Einstellungen getroffen sind: Wenn Du im VBA-Editor hineingehst, dann siehst Du in meinem Modul ganz oben Voreinstellungen:
Code: Const BlName As String = "HMK07" 'Name des einzufügenden Blocks Const BlScale As Double = 1 'Skalierung des Blocks Const BlRotateRad As Double = 0 'Rotation des Blocks in Radiant Const AttNameHeight As String = "HOEHE" 'Name des Attributs fuer die Hoehe Const DecPlaces As Integer = 2 'Anzahl der Dezimalstellen zum Ausfuellen der Hoehe
Und dabei gilt: - ein solcher Block muss existieren, entweder in der Zeichnung oder im Suchpfad von AutoCAD - der Block muss über das angegebene Attribut verfügen ...die restlichen Einstellungen sind hoffentlich verständlich beschrieben.VORSICHT: dieser Code ist nicht ausreichend getestet, vorher Speichern, nachher visuelle Kontrolle! HTH, - alfred - ------------------ www.hollaus.at [Diese Nachricht wurde von a.n. am 04. Mrz. 2010 editiert.] |
GeoBrunner Mitglied
Beiträge: 14 Registriert: 03.03.2010 AutoCad Map3D 2008
|
erstellt am: 04. Mrz. 2010 17:30 <-- editieren / zitieren --> Unities abgeben:
|
GeoBrunner Mitglied
Beiträge: 14 Registriert: 03.03.2010 AutoCad Map3D 2008
|
erstellt am: 04. Mrz. 2010 17:45 <-- editieren / zitieren --> Unities abgeben:
|
globerDa95 Mitglied Technischer Systemplaner
Beiträge: 5 Registriert: 05.11.2013
|
erstellt am: 27. Mrz. 2017 11:00 <-- editieren / zitieren --> Unities abgeben: Nur für GeoBrunner
Hallo, der Beitrag ist schon etwas älter, aber passt so ziemlich zu meiner Frage. Ich arbeite mit AutoCAD 2017 und möchte Blöcke automatisch auf vorgegebene Punkte vom Architekten erstellen lassen. Leider sind es keine AutoCAD "punkte" wie es in der dvb gefordert ist, sondern einfach kreuze aus zwei Linien. Kann ich solche "punkte" automatisch auf allen "ähnlichen Objekten" platzieren lassen um diese dvb auszuführen? Oder kann man Änderungen vornehmen, dass ich AutoCAD einen Punkt auf einem gewünschten Objekt vorgebe und er mir alle ähnlichen raussucht und die Blöcke dort platziert? Das wäre der ober Hammer ! Noch toller wäre es natürlich wenn ich diese Objekte auch in einer zu referenzierten Datei bestimmen könnte. Wenn all diese Sachen möglich sind, wäre ich auf hilfreiche Tipps dankbar! Als Hinweis: Ich habe es schon mit dem rauslesen von Koordinaten probiert. Dabei bekomme ich aber immer den Start- und Endpunkt jeder Linie. Um die Mitte rauszufinden könnte ich es in Excel bearbei-ten. (Wobei ich durch die Mitte beider Linien immer eine Koordinate doppelt hätte...) Dann ein Block auf all diese Koordinaten platzieren. Wobei ich wiederum nicht wüsste wie ein Block auf mehrere Ko-ordinaten platziert werden kann [Diese Nachricht wurde von globerDa95 am 27. Mrz. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 27. Mrz. 2017 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für GeoBrunner
Hallo und herzlich Willkommen hier bei CAD.de! Die doppelten Koordinaten kannst Du in Excel ja sicherlich herausfiltern. Das Einfügen von Blöcken auf bestimmte Koordinaten löse ich immer über Scripte. Das ist auch für einen Laien ganz gut zu handhaben. Mit Lisp kenne ich mich gar nicht aus... Bei mir sah es dann so aus:
Code: -layer n Layername -layer SE Layername -einfüge Blockname X,Y,Z 0.1 0.1 0 Attribute
Sicher kann man das Ganze auch noch verkürzen und vereinfachen. Es gibt hierzu auch mehrere Beiträge im Forum. ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
globerDa95 Mitglied Technischer Systemplaner
Beiträge: 5 Registriert: 05.11.2013
|
erstellt am: 27. Mrz. 2017 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für GeoBrunner
Hallo, Danke müsste so funktionieren! Ist jetzt trotzdem nicht die Eleganteste Lösung meiner Meinung nach , weil die Objekte im-mer andere sein könnten und dem entsprechend muss ich für jede Datei meine Excel Dateien und ausgelesenen Koordinaten neu anpassen und neu ins Skript kopieren... Leider habe ich mit Lisp-Dateien auch nur ganz simple Dinge erstellt. Gibt es denn keine schnellere oder benutzerfreundlichere Lösung? Da es mehr oder weniger eine Fleißarbeit ist, wäre die Benutzerfreundlichkeit mega wichtig, weil dann könnte ich so etwas auch schnell Praktikanten etc. beibringen . Danke im Voraus!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 27. Mrz. 2017 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für GeoBrunner
Servus, naja da würd ich mal den Architekten auf die Finger hauen.... Anbei ein lsp das ein Objekt gegen einen Objekt tauscht (hier ein Block), es wird der Startpunkt verwendet. (cdr(assoc 10 OBJ)) sind die Koordinaten. Code: (defun c:OBJ2Block () (setq n 0) (repeat (sslength(setq aws (ssget '((0 . "*"))))) (setq OBJ (entget (ssname aws n))) (command "_ucs" "_w") (command "_.-INSERT" "Tausch" (cdr(assoc 10 OBJ)) "" "" "") (command "_ucs" "_p") (entdel (ssname aws n)) (setq n (1+ n)) ) )
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |