| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Kreise in Blöcke umwandeln (2998 mal gelesen)
|
Sunshine8802 Mitglied Landschaftsarchitekt
Beiträge: 3 Registriert: 24.07.2014 Autocad 2012, Windows 7
|
erstellt am: 24. Jul. 2014 17:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, nach langer, erfolgloser Suche im Internet bin ich immer noch ratlos... Das Problem ist immer das selbe. Bei Lagepläne von Dritten sind Bäume meistens als Kreise vorgezeichnet, aber nicht als Block. Da es wahnsinnig zeitraubend ist die einzelnen Kreise durch einzelne Blöcke zu ersetzen, um die Eigenschaften individuell anzupassen..meine Frage: Wie könnte man die Kreise schneller ersetzen? Gibt es die Möglichkeit Eigenschaften von Blöcken zu übertragen auf einfache Formen? Oder wie kann man Autocad sagen das er die Kreise ersetzen soll? Über jede Hilfe wäre ich sehr Dankbar. Ps. Im Anhang sind die "Bäume" Kreise zu finden..da sie eine einfache Form mit Schatten erhalten sollen, müsste man jetzt jeden einzeln anklicken..
[Diese Nachricht wurde von Sunshine8802 am 24. Jul. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Jul. 2014 18:00 <-- editieren / zitieren --> Unities abgeben: Nur für Sunshine8802
Einen AutoCAD-Befehl gibt es nicht, aber mehrere Wege zur Lösung ! TIP: Man kann auch Foren durchsuchen und die eigenen Probleme haben andere für gewöhnlich auch schon gehabt! site:cad.de Forum54 Kreis in Blöcke
Hier ein Googletreffer: Klick! ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sunshine8802 Mitglied Landschaftsarchitekt
Beiträge: 3 Registriert: 24.07.2014 Autocad 2012, Windows 7
|
erstellt am: 24. Jul. 2014 18:12 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für den Hinweis das man auch Foren durchsuchen kann. Das habe ich schon stundenlang getan. Auch ich bin schon auf diesen Tipp gestoßen. Leider hat der Befehl: (if(and(setq A(ssget "_x" (list'(0 . "CIRCLE")(cons 410 (getvar"CTAB"))))) (tblobjname "BLOCK" "rechteck") ) (mapcar '(lambda(X)(command "_-insert" "rechteck" (cdr(assoc 10 (entget (cadr X)))) 1.0 1.0 0)) (ssnamex A) ) ) nicht funktioniert. Daher meine Anfrage hier. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
Beiträge: 5881 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 24. Jul. 2014 18:17 <-- editieren / zitieren --> Unities abgeben: Nur für Sunshine8802
Sunshine8802, willkommen. Du bist neu hier im Forum, daher der Hinweis, dass du ungenau in deiner Beschreibung bist. Du hast gar keine Kreise, nicht einen einzigen in deinem Beispiel. Deshalb funktioniert der Code nicht... Lothar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Jul. 2014 18:55 <-- editieren / zitieren --> Unities abgeben: Nur für Sunshine8802
Und das du diesen Code bereits probiert hast.. Die Info fehlt auch, samt Fehlermeldung. Aber nun ist ja die DWG da und jemand kann dir die perfekte Antwort geben. Ich habe schon Feierabend und lese nur noch auf dem Handy mit.. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
Beiträge: 5881 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 24. Jul. 2014 19:01 <-- editieren / zitieren --> Unities abgeben: Nur für Sunshine8802
Es gibt eine Lisp, die Objekte in bereits definierte Blöcke umwandelt. Finde ich gerade nicht, mal suchen. Ich würde aber nicht jedes Objekt in eine Blockdefinition umwandeln, das ist kaum handhabbar. Zusätzlich sind einige "Bäume" kaputt... Lothar [Diese Nachricht wurde von Kramer24 am 24. Jul. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 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: 25. Jul. 2014 07:12 <-- editieren / zitieren --> Unities abgeben: Nur für Sunshine8802
servus, wie schon gesagt keine Kreise daher keine Umwandlung. Erstelle von allen Flächen Regionen mit dem LISP aus diesem Beitrag kannst du am Schwerpunkt einen Punkt setzen (oder das Lisp verändern) Code: (defun c:vox-center-points ( / as ele z) (vl-load-com) (setq as (ssget '((0 . "REGION"))) z -1) (while (setq ele (ssname as (setq z (1+ z)))) (command "_point" (vlax-safearray->list (vlax-variant-value (vla-get-centroid (vlax-ename->vla-object ele))))) ) )
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sunshine8802 Mitglied Landschaftsarchitekt
Beiträge: 3 Registriert: 24.07.2014 Autocad 2012, Windows 7
|
erstellt am: 25. Jul. 2014 11:27 <-- editieren / zitieren --> Unities abgeben:
Wenn man so viele Flächen umwandeln will. Ist der Weg also immer ähnlich? Erst die ganzen Flächen mit einer Lisp in Regionen umwandeln und dann mit einer Lisp die Regionen auf einen Block verweisen. Wir versuchen das jetzt nochmal alle diese Tipps. Wennd das nicht klappt bleibt uns wohl das Nachzeichnen nicht erspart, da die Zeit rennt und die Daten dringend gebraucht werden.. Danke also nochmals für die tollen Tipps.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 25. Jul. 2014 12:20 <-- editieren / zitieren --> Unities abgeben: Nur für Sunshine8802
Hallo, ich würde via Lisp über das "umgebende Rechteck" (BoundingBox) gehen. Da ist dann auch egal, um was es sich bei dem Objekt handelt: Code: (defun c:vox-object2circle (/ as zaehler ele a b center radius) (vl-load-com) (setq as (ssget) zaehler -1) (while (setq ele (ssname as (setq zaehler (1+ zaehler)))) (vla-getboundingbox (vlax-ename->vla-object ele) 'a 'b) (setq center (mapcar '/ (mapcar '+ (setq a (vlax-safearray->list a)) (setq b (vlax-safearray->list b))) '(2 2 2))) (setq radius (distance center (list (car a) (cadr center) (caddr a)))) (command "_circle" center radius) ) )
Statt einen Kreis zeichnen, kannst Du natürlich auch einen Block einsetzen... Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
Beiträge: 5881 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 25. Jul. 2014 14:48 <-- editieren / zitieren --> Unities abgeben: Nur für Sunshine8802
|