| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Blöcke entspiegln (717 mal gelesen)
|
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 10:02 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen liebe CAD-Gemeinde, ich habe ein mittelprächtige Problem zulösen. Leider ist mir bis jetzt keine Lösung eingefallen, jetzt hoffe ich das jemand von euch eine Lösung hat: Problembeschreibung: Innerhalb von diversen Zeichnungen die bereits auf einen CAFM-Standard umgesetzt worden sind, befinden sich hunderte von Blöcken die gespiegelt eingefügt worden sind. Diese Blöcke müssen entspiegelt werden, ohne das sich die Lage, Drehrichtung, Attributsstruktur, Attriutsanzahl und Reihenfolge, sowie Attributslayer und Blocklayer ändern. Für eine automatisierte Lösung(Lisp oder anderes Programm) wäre ich sehr dankbar. Es grüßt aus dem mittelhessischen Langgöns Guido Schumcher Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
charlieBV Ehrenmitglied V.I.P. h.c. Bauzeichnerin
Beiträge: 9319 Registriert: 28.08.2003
|
erstellt am: 30. Jul. 2007 10:07 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
|
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 10:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Yvonne, die Einfügepunkte und die Skalierung der Blöcke; die ich bis jetzt gefunden habe sind alle gleich. Ob es noch andere Blöcke gibt, die auch gespiegelt sind, weiß ich leider noch nicht; denn ich habe erst am Freitagmittag mit dem Projekt begonnen. Das es aber Elektroinstallationspläne sind; die Blöcke alle Klartextnamen haben, ist der Einfügepunkt und die Skalierung immer gleich.(weiß ich genau, den Ich habe die Symbolbiliothek selbst erstellt) Es grüßt Dich aus dem mittelhessischen Langgöns Guido Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
charlieBV Ehrenmitglied V.I.P. h.c. Bauzeichnerin
Beiträge: 9319 Registriert: 28.08.2003
|
erstellt am: 30. Jul. 2007 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
Ok, dann mach mal eine Kopie. Such per Schnellauswahl alle Blockreferenzen, deren Skalierung nicht (ich gehe mal von einer Skalierung von 1 aus) 1 sondern -1 (Spiegelung um Y Achse) ist. Und dann stell mal im Eigenschaftsfenster um. Ist es das was du möchtest? ------------------ Gruß Yvonne ADT-Help-Site Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 10:43 <-- editieren / zitieren --> Unities abgeben:
Hallo Yvonne, leider ist es das nicht; die Blöcke verändern dabei leider Ihren Drehwinkel. Die Blöcke haben folgende Skalierungswerte (x=-0.27, y=0.27, z=0.27). Die Drehung der Blöcke beträgt dabei 0 bis 179Grad. Gruß aus Langgöns Guido
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 30. Jul. 2007 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
Hallo Guido, überprüfe mal den Gruppencode 210 eines Blockes: Gib folgenden in die Befehlszeile ein: (cdr(assoc 210 (entget (car (entsel "Bitte Block wählen"))))) Ich schätze mal, da müßte dann folgendes rauskommen (extrusionsrichtung): (0.0 0.0 -1.0) wenn das so ist, dann müßte man per LISP die Extrusionsrichtungen umdrehen, die Geometrie des Blockes würde dann gespiegelt werden, die Position der Attribute bleibt erhalten. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 11:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, leider erscheint dann folgendes: Befehl: (cdr(assoc 210 (entget (car (entsel "Bitte Block wählen"))))) Bitte Block wählen(0.0 0.0 1.0) Bei der Überprüfung der Eigenschaften des Blockes ist der X-Wert negativ. Es grüßt aus dem mittelhessischen Langöns Guido PS: Leider sind zwei sehr Lisp-Programmierer die ich sonst fragen bzw. um Hilfe bitten könnte in Urlaub. Frage: Müsste der Block nicht gesprengt werden, dann neu definiert werden mit allen Attributseigenschaften und wieder an der selben Stelle eingefügt werden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 30. Jul. 2007 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
Hallo Guido, dann muss ich nochmal nachfragen: 1. Sind die Blockdefinitionen auch gespiegelt? 2. Wie ist die Spiegelung entstanden? Wenn wirklich auch die Blockdefinition gespiegelt ist, dann würde ich auch die jeweilige Definition ändern, die vorhandenen Blöcke in der Zeichnung würden in diesem Zuge aktualisiert werden (Attribute mit Inhalten und Positionen bleiben erhalten) Vielleicht solltest Du mal ein kleines Beispiel posten.
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 12:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, hier sind (ich hoffe) alle Informationen, die ich über diese Blöcke (als Muster nur von einem) auslesen konnte. Objekt wählen: (<Objektname: 7ed72368> (53.2769 92.2328 0.0) ((-5.9952e-017 -0.27 0.0) (-0.27 5.9952e-017 0.0) (0.0 0.0 0.27) (53.3355 92.4087 0.0)) (<Objektname: 7ed727b0> )) "--------------------------------------------------" <Objektname: 7ed72368> "++++++++++++++++++++++++++++" <Objektname: 7ed72368> "++++++++++++++++++++++++++++" ((-1 . <Objektname: 7ed72368> ) (0 . "LINE") (330 . <Objektname: 7ed72340> ) (5 . "4907D") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbLine") (10 0.635407 0.499992 0.0) (11 0.635407 -0.499992 0.0) (210 0.0 0.0 1.0)) ENTER (53.2769 92.2328 0.0) 53.2769 92.2328 0.0 ENTER ((-5.9952e-017 -0.27 0.0) (-0.27 5.9952e-017 0.0) (0.0 0.0 0.27) (53.3355 92.4087 0.0)) (-5.9952e-017 -0.27 0.0) (-0.27 5.9952e-017 0.0) (0.0 0.0 0.27) (53.3355 92.4087 0.0) ENTER (<Objektname: 7ed727b0> ) "++++++++++++++++++++++++++++" <Objektname: 7ed727b0> "++++++++++++++++++++++++++++" ((-1 . <Objektname: 7ed727b0> ) (0 . "INSERT") (330 . <Objektname: 7ef91cf8> ) (5 . "4A8C6") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "ELT_7_ELAN_-") (100 . "AcDbBlockReference") (66 . 1) (2 . "Anbaulautsprecher") (10 53.3355 92.4087 0.0) (41 . -0.27) (42 . 0.27) (43 . 0.27) (50 . 1.5708) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0)) ENTER Hier noch die Kurzform: Objekte wählen: ((-1 . <Objektname: 7ed727b0> ) (0 . "INSERT") (330 . <Objektname: 7ef91cf8> ) (5 . "4A8C6") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "ELT_7_ELAN_-") (100 . "AcDbBlockReference") (66 . 1) (2 . "Anbaulautsprecher") (10 53.3355 92.4087 0.0) (41 . -0.27) (42 . 0.27) (43 . 0.27) (50 . 1.5708) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0)) Ich hoffe Du kannst mit diesen Informationen etwas anfangen. Es grüßt aus den jetzt sonnigen Langgöns Guido Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 30. Jul. 2007 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
Hallo Guido, den "Übeltäter" habe ich glaube ich erkannt: im GC 41 (Skalierung in X) ist ein negativer Wert: (41 -0.27) Probier mal folgendes LISP:
Code:
(defun c:test ( / aws n) (princ "\nBitte Blöcke auswählen:") (if (setq aws (ssget (list (cons 0 "INSERT")))) (progn (setq n 0) (repeat (sslength aws) (entmod(subst (cons 41 (abs(cdr(assoc 41 (entget (ssname aws n)))))) (assoc 41 (entget (ssname aws n))) (entget(ssname aws n)))) (setq n (+ n 1)))) (alert "keine blöcke ausgewählt.")))
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 12:45 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 30. Jul. 2007 13:16 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
Hallo Guido, dann musst Du mir sagen, was negativ ist. Wenn ich das Programm durchlaufen lasse, dann werden alle "Lautsprecher" um den Basispunkt gespiegelt. Den gleichen Effekt würdest Du auch erzielen, wenn Du alle Blöcke (Bedingung: gleiche Skalierung in X) auswählst, und im Eigenschaftenfenster die Skalierung in X von -0.27 auf 0.27 änderst. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 13:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, die Lautsprecher dürfen Ihre Lage (Drehung, Darstellung im Plan) nicht verändern. Sie müssen genauso wie in der Zeichnung dargestellt, erhalten bleiben. Das ist ja das "verdammte" Problem bei der Sache. Ich Danke Dir sehr für deine Mühe Jörn, selbst wenn Du keine Lösung finden solltest, ist es nicht weiter tragisch. Dann werde ich dieses halt erst ab Mitte August lösen können. Es grüßt Dich aus dem mittelhessischen Langgöns Guido Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 30. Jul. 2007 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
Hallo Guido, einen habe ich noch... Und zwar passiert jetzt folgendes: Es wird die Skalierung im GC 41 von negativ auf positiv geändert, und zu der Drehung im GC 50 wird PI addiert. Damit bleiben die Blöcke in der Darstellung erhalten wie sie sind. Code:
(defun c:test ( / aws n) (princ "\nBitte Blöcke auswählen:") (if (setq aws (ssget (list (cons 0 "INSERT")))) (progn (setq n 0) (repeat (sslength aws) (if (<(cdr(assoc 41 (entget (ssname aws n))))0.0)(progn (entmod(subst (cons 41 (abs(cdr(assoc 41 (entget (ssname aws n)))))) (assoc 41 (entget (ssname aws n))) (entget(ssname aws n)))) (entmod(subst(cons 50 (+ pi(cdr(assoc 50 (entget (ssname aws n)))))) (assoc 50 (entget (ssname aws n))) (entget(ssname aws n)))))) (setq n (+ n 1)))) (alert "keine blöcke ausgewählt.")))
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
revox2 Mitglied CAD-Konstrukteur
Beiträge: 18 Registriert: 24.08.2005 HPxw4400 MS XP ACAD 2007 mit Elektroapplikation (kein Markenprodukt, sondern besser)
|
erstellt am: 30. Jul. 2007 14:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, Die vorhin eingestellte Lisp-Routine hat mir sehr geholfen. Ich Danke Dir ganz herzlich und wünsche Dir eine angenehme Arbeitswoche. Es grüßt Dich aus dem jetzt sonnigen Langgöns Guido
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 30. Jul. 2007 14:44 <-- editieren / zitieren --> Unities abgeben: Nur für revox2
Hallo Guido, warum rufst du mich nicht einfach an ? Das hatten wir doch schon mal als Forderung in einem Pflichtenheft. Ist zwar schon etwas her aber du weist doch daß ich sowas in der Schublade habe. Ich bin doch seit heute aus dem Urlaub zurück . Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |