Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  453 Blöcke überarbeiten

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:  453 Blöcke überarbeiten (1732 mal gelesen)
Gargarot
Mitglied
Student MSc Civil Engineering ETHZ, Dipl Bauzeichner


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

Beiträge: 316
Registriert: 25.06.2008

HP 8560w, Win7 SP1 64bit, i7 2760QM 2.4GHz, AMD FirePro M5950, 8GB RAM; AutoCAD 2013 Edu

erstellt am: 12. Aug. 2008 00:13    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

Hellou liebe Leute

Bin gerade dabei die Blockbibliothek zu erneuern/überarbeiten.

1. Kann man einen Block anwählen und mit einem Befehl einen Neuen Namen für den Block eingeben? Man kann ja über Format/umbenennen;block aus einer Liste einen Block auswählen. Da aber die bestehenden Namen wild durcheinender sind, müsste man zuerst jeweils gucken wie der zu ändernde Block heisst, und dann erst in der Liste suchen usw.. Und ich hab da 450 Blöcke 

2. Kann man einen Skalierten Block mit einem Befehlsmakro so bearbeiten, dass dann X, Y und Z-Faktor = 1 sind? Im CAD sollte sich allerdings die grösse nicht ändern. Eigentlich wie Block sprengen und neudefinieren.

Wird warscheinlich schwierig. Hab auch über die Suche nichts gefunden...
Die ursprüngliche Idee ist diese katastrofalen Blöcke alle neu zu bennenen, Alles auf 1/1/1 skaliert und im Block Layer auf 0, Ltypt, Farbe ect auf vonBlock... Letzteres habe ich bereits mit einem Macro geschafft (^C^C_-bedit;_ai_selall;eigändr;f;vonblock;la;0;lty;vonblock;ls;vonblock;;_BCLOSE; ..ist aber irgendwie alles Hobbymässig. [ich weiss, da sind englische und deutsche Befehle bunt gemischt xD ]

Warscheinlich sollte ich mich mal mit Lisp vertraut machen...

Wenn ihr mir bei Problem 1 helfen könntet wären immerhin etwa die Hälfte der Blöcke in Ordnung. Sonst mach ich das halt wie früher.. Sprengen und dann schön nöi definieren.

Jup. Besten Dank für eure Bemühungen und gute Nacht

Grüsse Christoph

------------------
3 kleine Weisheiten
-Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die zu seiner Entstehung beigetragen haben.
-Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz
-Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

Win 10
ACAD 2022

erstellt am: 12. Aug. 2008 08:27    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 Gargarot 10 Unities + Antwort hilfreich

Hallo Christoph,
zu 1:
(command "_rename" "_b" (cdr (assoc 2 (entget (car (entsel))))) (getstring "Neuer Blockname : "))

zu 2:
(defun c:blk_neudef ()
  (command "_undo" "_be")
  (if (setq satz (ssget '((0 . "INSERT"))))
    (progn
      (setq n (1- (sslength satz)))
      (repeat (sslength satz)
        (setq ent_data (entget (setq ent_name (ssname satz n))))
        (setq p (cdr (assoc 10 ent_data)))
        (setq name (cdr (assoc 2 ent_data)))
        (command "_explode" ent_name)
        (if (setq satz_v (ssget "_p"))
          (progn
            (command "_block" name "_y" p satz_v "")
            (command "_insert" name p 1 1 0)
          )
        )
        (setq n (1- n))
      )
    )
  )
  (command "_undo" "_e")
  (princ)
)

Da ist jetzt aber noch nicht die Änderung der Farben, Linietypen, usw. der Blockelemente dabei, aber da hab ich jetzt leider keine Zeit dafür.

Gruß
Andreas

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

Gargarot
Mitglied
Student MSc Civil Engineering ETHZ, Dipl Bauzeichner


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

Beiträge: 316
Registriert: 25.06.2008

erstellt am: 12. Aug. 2008 11:09    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

Wow! Besten Dank! Habs gleich mal ausprobiert mit AutoCAD 2009

Makro 1 funktioniert tiptop. Bei 2 habe ich allerdings Probleme. Man sollte doch grundsätzlich diesen Code über Rechtsklick - Anpassen - Neuer Befehl -> dann unter Makro einfügen können. Allerdings passiert folgendes,wenn ich den Befehl verwenden möchte:

Befehl: (defun c:blk_neudef ()
(_>  (command "_undo" "_be")
(_>  (if (setq satz (ssget '((0 . "INSERT"))))
((_>    (progn
(((_>      (setq n (1- (sslength satz)))
(((_>      (repeat (sslength satz)
((((_>        (setq ent_data (entget (setq ent_name (ssname satz n))))
((((_>        (setq p (cdr (assoc 10 ent_data)))
((((_>        (setq name (cdr (assoc 2 ent_data)))
((((_>        (command "_explode" ent_name)
((((_>        (if (setq satz_v (ssget "_p"))
(((((_>          (progn
((((((_>            (command "_block" name "_y" p satz_v "")
((((((_>            (command "_insert" name p 1 1 0)
((((((_>          )
(((((_>        )
((((_>        (setq n (1- n))
((((_>      )
(((_>    )
((_>  )
(_>  (command "_undo" "_e")
(_>  (princ)

in der Befehlszeile steht dann (_> ), drück ich Enter wird dann noch C:blk_neudef hingeschrieben, dann ist allerdings fertig und es erscheint wieder Befehl:

Nächster Versuch war ein bisschen recherchieren und da bin ich auf folgende Seite gekommen: http://autocad.cad.de/modules.php?name=FAQ&myfaq=yes&id_cat=4&categories=VBA

Bin schön Schritt für Schritt durchgegangen, allerdings erscheint dann unter Makro/Makros... kein Makro . Ich nehme an, da sollte was aufgelistet werden und dann muss man das Ausführen. Irgendwie hab ich dann den Code noch gespeichert und dann nochmal in Makros... beim Rollbalken die Datei xxx.dvb angeklickt und irgendwie in der Befehlszeile blk_neudef eingegeben. Auf jeden Fall hab ich es geschafft 2 Blöcke richtig zu skalieren. Es funktioniert also. Gut. Dann CAD beendet und .dvb in Richtige Ordner kopiert ect. Dann versucht das Makro zu laden. Ging aber nicht mehr. Ich kann machen was ich will, ich kann das Ding nicht mehr ausführen. Sogar als ich von vorne angefangen hab, gings nicht mehr.

Nun brauch ich eure Hilfe. Liegt es an meinem 2009? Am Code liegts nicht. Warscheinlich liegt es an mir  Hat jemand einen besseren Link der mir erklärt, wie ich einen solchen Code ins CAD integrieren kann? Oder warum das Makro nicht angewählt werden kann.

Also nochmal ein Danke an Andreas für die schnelle Antwort. Ich brauch jetzt mal eine Pause :P

Gruss Christoph

------------------
3 kleine Weisheiten
-Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die zu seiner Entstehung beigetragen haben.
-Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz
-Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

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

runkelruebe
Moderator
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

Kinder, kauft Kämme!
Es kommen lausige Zeiten.

erstellt am: 12. Aug. 2008 11:13    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 Gargarot 10 Unities + Antwort hilfreich

hmm,
das ist kein VBA-Makro, das ist ein lisp-code...
Hr. FAQ schreibt zum Thema LISP-Dateien laden folgendes: KLICK

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

System-Info     Excel -Suche    RuA-Suche     FAQ-ACAD     Hilfe zu CAD.de 

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

Gargarot
Mitglied
Student MSc Civil Engineering ETHZ, Dipl Bauzeichner


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

Beiträge: 316
Registriert: 25.06.2008

erstellt am: 12. Aug. 2008 11:36    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

Okke

Hab mal wieder unter dem Falschen Begriff gesucht. Es könnte ja so einfach sein 

Jetzt klappt alles Tiptop!
Das Lisp hat allerdings Mühe Blöcke mit kuriosen Namen wie www.xxx.block.00001.dwg zu bearbeiten. Ich kanns ihm (dem Lisp) nicht verübeln  . Ich ändere sowieso erst alle Namen.
Also Problem gelöst, Christoph ist zufrieden und verteilt jetzt Unities.

Liebe Grüsse Christoph

------------------
3 kleine Weisheiten
-Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die zu seiner Entstehung beigetragen haben.
-Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz
-Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

Win 10
ACAD 2022

erstellt am: 12. Aug. 2008 22: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 Nur für Gargarot 10 Unities + Antwort hilfreich

Hallo Christoph,
na dann viel Spass damit. Und wenn was nicht klappt, kann ja mal vorkommen daß ein Block einen ungewöhnlichen Namen hat, gib einfach Bescheid denn "geht nicht - gibts nicht".

@runkelruebe
danke für die freundliche Unterstützung wärend meinem "Timeout"

Gruß
Andreas

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