| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Durchgängige CAD-Daten in der Produktkonfiguration, eine Pressemitteilung
|
Autor
|
Thema: Objekte und Texte Drehen (3480 mal gelesen)
|
Christian21P Mitglied
Beiträge: 121 Registriert: 02.03.2010 Acad 2011 Acad Civil 3D 2011 Windows 7
|
erstellt am: 20. Okt. 2010 10:16 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich habe ein Problem mit einem Lisp aus dem Internet. Es sollte mehrere Objekte und Texte um den eigenen Einfügepunkt drehen unter Rücksichtnahme des aktuellen Winkels. BSP: Block1 hat Drehung 100 , Block 2 hat Drehung 150 Ich sage dem Lisp das sich die objekte um 200 gon drehen sollen. Nun sollte Block 1 den Wert 300 und Block 2 350 haben. Dies funktionert leider nicht so wie es sollte und die Objekte andern auch ihre Lage. Wisst ihr woran das liegt bzw habe ihr ein Lisp welches dies funktionstüchtig kann ? lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 20. Okt. 2010 10:27 <-- editieren / zitieren --> Unities abgeben: Nur für Christian21P
|
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: 20. Okt. 2010 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für Christian21P
Hallo Christian, habe das Lisp als internationale Version. Sicher mal hier aus dem Forum. Bei mir läuft es. Code: ;****************************************************************************** ;DREHEN von Objekten die einen definierten Einfügepunkt haben. ;(Texte, Blöcke, Kreise ect.) ;****************************************************************************** (defun c:DREHEN-E (/ faktor aus n i nam ins) (terpri)(terpri) (setvar "cmdecho" 0) (princ "\nDer DREHEN-BASIS-PUNKT ... ist der jeweilige Objekt-Einfügepunkt.") (setq drehwink (getreal "\nDrehwinkel für die Objekte: ")) ;-----Auswaehlen--------------------------------------------------------------- (setq aus (ssget) as aus) ;aus=Auswahl der Elemente (setq n (sslength aus)) ;n=Anzahl der Elemente (max) (command "_ucs" "_w") (setq i 0) ;Zaehler auf 0 ;-----Bearbeiten--------------------------------------------------------------- (setvar "cmdecho" 0) (while (< i n) ;solange wie Zaehler < max (setq nam (ssname aus i)) ;jedem i aus Auswahl einen Namen (setq ins (cdr (assoc 10 (entget nam)))) (command "_rotate" nam "" ins drehwink) ;nam=nur ein Element (setq i(1+ i)) ;Zaehler eins weiter ) ;while (command "_ucs" "_p") (princ) ) ;defun ;******************************************************************************
------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian21P Mitglied
Beiträge: 121 Registriert: 02.03.2010 Acad 2011 Acad Civil 3D 2011 Windows 7
|
erstellt am: 20. Okt. 2010 11:33 <-- editieren / zitieren --> Unities abgeben:
Mein Lisp ist exakt das selbe wie das von Dig15. Ich habe im ersten Beitrag ein DWG mit Blöcken die die entlang einer Polylinie im Abtand von 15 m ausgerichtet sind (Befehl: messen). Diese sollen um 200 Gon oder 180 Grad gedreht werden mit diesem Lispausdruck. Allerdings ändert sich damit die Lage des Basispunktes(dieser ist bei den Blöcken Zentral definiert). Probiert es mal aus in meiner Zeichnung - ihr werdet sofort erkennen was ich meine. Wenn ich die Drehung händisch ändere passiert dies nicht! Ich habe den verdacht das irgendwas mit dem Ausrichtungsparameter Schuld ist. Bei texten usw funktioniert das Lisp einwandfrei bei mir - daher kann ich es mir nicht erklären. lg PS: Kann es am Block liegen ? 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: 20. Okt. 2010 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für Christian21P
Bei mir klappt es. Die Blöcke sind bei mir nur 10 ZE von einander entfernt. Drehen, egal ob mit dem Lisp oder von Hand liefert die gleichen Ergebnisse. ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 20. Okt. 2010 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Christian21P
@Christian21P <ich frage höflichst und freundlich>Kann es sein das du dich einfach irrst ? Sind es dynamische Blockreferenzen oder nicht ? Ist es wirklich der Blockbasispunkt oder evtl. doch ein anderer Griff ? Ansonsten: Beispielzeichnung ! (am besten dein besagtes Beispiel mit vorher/nachher - die Eindeutigkeit kannst du ja mit Wolhken&Text oder mit Farben darstellen) ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian21P Mitglied
Beiträge: 121 Registriert: 02.03.2010 Acad 2011 Acad Civil 3D 2011 Windows 7
|
erstellt am: 20. Okt. 2010 12:34 <-- editieren / zitieren --> Unities abgeben:
"Kann es sein das du dich einfach irrst ?" Hmm nein ich bin mir sicher das das Ergebnis nicht so sein sollte. "Sind es dynamische Blockreferenzen oder nicht ? Ist es wirklich der Blockbasispunkt oder evtl. doch ein anderer Griff ?" Sind Dynamisch. Einfügepunkt ist auch gleichzeitig ein Ausrichtparameter. "Ansonsten: Beispielzeichnung ! (am besten dein besagtes Beispiel mit vorher/nachher - die Eindeutigkeit kannst du ja mit Wolhken&Text oder mit Farben darstellen)" Meine Beispielzeichnung war im ersten Beitrag - mich wundert es das es bei euch klappt. Habe sie aber einmal jetzt Vor Drehen-E und nach dem Lisp Befehl erstellt und an diesem Beitrag angefügt. [Diese Nachricht wurde von Christian21P am 20. Okt. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian21P Mitglied
Beiträge: 121 Registriert: 02.03.2010 Acad 2011 Acad Civil 3D 2011 Windows 7
|
erstellt am: 27. Okt. 2010 09:13 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 Kinder, kauft Kämme! Es kommen lausige Zeiten.
|
erstellt am: 27. Okt. 2010 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für Christian21P
Keine Idee, weil ich es anhand Deiner Dateien nicht nachvollziehen kann. Ich hab es jetzt in allen drei angehängten dwg und "Deinem" lsp getestet, in allen Dateien drehen sich die Blockreferenzen ordnungsgemäß "auf der Stelle". Sorry. Tipps zur Fehlerfindung: Alle Dateien bereinigt, geprüft, wiederhergestellt? Läuft es in anderen Dateien richtig? Läuft es mit anderem userprofil / acad-profil richtig? Läuft es auf einem anderen PC richtig? Hast Du Vergleichsmöglichkeiten bzgl. verstellter Systemvariablen (E-Toolsbefehl: _.sysvdlg > Ergebnis dann via Excel o.ä. vergleichen)
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |