| |
| 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: Attribute sollen sich nicht mitdrehen (3072 mal gelesen)
|
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002 AutoCAD 2019 Microsoft Windows 10 Pro Intel(R) Core(TM) i5-9400F CPU 2,90Ghz NVIDIA GeForce GT 730
|
erstellt am: 05. Apr. 2005 10:48 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe folgendes Problem: In meinem Zeichnungen setze ich sehr viele Blöcke mit sichtbaren Atrributen ein. Nun ist es öfters notwendig eineige Blöcke zu drehen, logischerweise dreht sich nun auch das sichtbare Attribut mit. Über den Erweiterten Atrributs Editor kann man dieser Drehung "entgegenwirken", allerdings nur individuell für einzelne Blöcke. Gibt es die möglichkeit das bei der Blockerstellung grundsätzlich festgelegt werden kann das sich das sichtbare Attribut nicht mitdrehen darf? ------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 05. Apr. 2005 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 05. Apr. 2005 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
Zitat: Original erstellt von Lary: Gibt es die möglichkeit das bei der Blockerstellung grundsätzlich festgelegt werden kann das sich das sichtbare Attribut nicht mitdrehen darf?
...nur über Anpassungsprogrammierung ließe sich was machen.. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002 AutoCAD 2019 Microsoft Windows 10 Pro Intel(R) Core(TM) i5-9400F CPU 2,90Ghz NVIDIA GeForce GT 730
|
erstellt am: 05. Apr. 2005 11:15 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnellen Antworten! @ cad4fun: Das Tool von gmk ist klasse! Allerdings wäre es noch besser wenn man den Block nicht nur um 90 Grad, sondern beliebig drehen könnte. Entweder per Tastaturengabe oder sogar per Maus. ------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 05. Apr. 2005 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
jetzt geht's auch mit tastatureingabe: (DEFUN c:db-at ( / ele wi dwink ) (SETQ ele (ENTGET (CAR (ENTSEL "Block wählen: ")))) (setq dwink (getreal "\ngib Drehwinkel: += gegen Uhrzeigersinn: ")) (SETQ wi (+ (CDR(ASSOC 50 ele)) (* (/ pi 180) dwink)) ele (subst (cons 50 wi) (assoc 50 ele) ele) ); setq (entmod ele) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 05. Apr. 2005 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
wie ist es hiermit : (defun c:Insert-RotateX (/ AUSWAHL OBJEKT OBJDATA W1 W2) (vl-load-com) (vla-startundomark(vla-get-activedocument(vlax-get-acad-object))) (if(and(or(setq AUSWAHL (ssget "I" '((0 . "INSERT")))) (setq AUSWAHL (ssget "_:S" '((0 . "INSERT")))) ) (setq OBJEKT(ssname AUSWAHL 0)) ) (progn (setq W1(cdr(assoc 50 (entget OBJEKT)))) (command "_rotate" OBJEKT "") (while (/=(getvar "CMDactive")0)(command pause)) (setq OBJDATA(entget OBJEKT)) (setq W2(cdr(assoc 50 OBJDATA))) (if (assoc 66 OBJDATA) (while (/= (cdr (assoc 0 OBJDATA)) "SEQEND") (setq OBJDATA (entget (entnext (cdr (assoc -1 OBJDATA))))) (if (= (cdr (assoc 0 OBJDATA)) "ATTRIB") (progn (setq OBJDATA (subst(cons 50 (- (cdr(assoc 50 OBJDATA)) (- W2 W1))) (assoc 50 OBJDATA) OBJDATA ) ) (entmod OBJDATA) ) ) ) ) ) ) (command "_regen") (vla-endundomark(vla-get-activedocument(vlax-get-acad-object))) (princ) ) ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002 AutoCAD 2019 Microsoft Windows 10 Pro Intel(R) Core(TM) i5-9400F CPU 2,90Ghz NVIDIA GeForce GT 730
|
erstellt am: 05. Apr. 2005 11:54 <-- editieren / zitieren --> Unities abgeben:
|
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002 AutoCAD 2019 Microsoft Windows 10 Pro Intel(R) Core(TM) i5-9400F CPU 2,90Ghz NVIDIA GeForce GT 730
|
erstellt am: 08. Apr. 2005 13:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, ich hätte noch eine kleine Anregung zu der LISP-Routine und würde Dich gerne bitten darüber nachzudenken und mir eventuell dabei zu helfen. Wenn ich mit der bestehenden Routine einen Block drehe, kann es vorkommen das sich die Attribute zwar wieder nach 0 ausrichten aber übereinander legen und anschliesend wieder "auseinandergefummelt" werden müssen. ISt es also möglich die Routine dahingehend anzupassen das die Attribute "gezwungen werden" an Ihren Plätzen zu bleiben? ------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 08. Apr. 2005 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
|
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002 AutoCAD 2019 Microsoft Windows 10 Pro Intel(R) Core(TM) i5-9400F CPU 2,90Ghz NVIDIA GeForce GT 730
|
erstellt am: 08. Apr. 2005 13:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, dürfte ich Dich auch eventuell darum bitten mir die ensprechende Routine ensprechend abgeändert zur Verfügung zu stellen (Muß auch nicht heute sein)? Habe übrigens vorhin irgenwo gelesen das Du heute Geburtstag hast, also Alles Gute!!! ------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 08. Apr. 2005 14:08 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
(DEFUN c:db-at ( / ele wi ) (SETQ ele (ENTGET (CAR (ENTSEL "Block wählen: ")))) (COMMAND "_ucs" "_object" (CDR(ASSOC -1 ele))) (SETQ wi (+ (CDR(ASSOC 50 ele)) (GETANGLE (TRANS (CDR (ASSOC 10 ele)) 0 1))) ele (subst (cons 50 wi) (assoc 50 ele) ele) ); setq (entmod ele) ) ciao georg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002 AutoCAD 2019 Microsoft Windows 10 Pro Intel(R) Core(TM) i5-9400F CPU 2,90Ghz NVIDIA GeForce GT 730
|
erstellt am: 08. Apr. 2005 14:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Georg, vielen, vielen Dank für Deine Antwort, Lösung. Ich habe noch eine kleine Frage und Bitte. In der Lösung von Thomas konnte man den Punkt um welchen man den Block drehen möchte selbst auswählen und man konnte das drehen des Blocks sehen. Am Ende Deiners Routine wäre es noch schön wenn man das BKS wieder auf 0,0,0 hätte. Ist dies alles mit Deiner Lösung vereinbar und würdest Du mir diese ebenfalls zur Verfügung stellen? Vielen Dank im Vorraus. ------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 08. Apr. 2005 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
das "online" drehen wie bei der lösung von thomas geht leider nicht da ich mit getangle erst den drehwinkel abfrage und dann dem block zuweise. thomas macht es genau andersrum. er dreht mit _rotate den block samt attrib. und dreht dann die attr. wieder zurück. nachteil ist hier, daß sich bei _rotate auch der einfügepunkt der attr. ändert (darum liegen die jetzt bei dir teilweise übereinander). um die alten einfügepunkte wieder herzustellen müßte man sich die einfügepkt. vor _rotate in eine liste schreiben und anschließend wieder zuweisen. zuweisen kannst du sie in der while-schleife von thomas (gc10 ist der einfügepunkt), rauslesen geht analog nur halt vor dem drehen. BKS auf 0,0,0 mit (COMMAND "_ucs" "_w") nach (entmod ele), dann bist du wieder in weltkoordinaten. ciao georg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002 AutoCAD 2019 Microsoft Windows 10 Pro Intel(R) Core(TM) i5-9400F CPU 2,90Ghz NVIDIA GeForce GT 730
|
erstellt am: 08. Apr. 2005 15:30 <-- editieren / zitieren --> Unities abgeben:
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009
|
erstellt am: 01. Aug. 2011 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
|