| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| | |
 | Zentrale Daten, weniger Abstimmung – mehr Tempo in Projektgeschäft & Service, ein Webinar am 12.02.2026
|
|
Autor
|
Thema: Assymetrisch Skalieren - wie geht das? (351 mal gelesen)
|
aldirosso Mitglied Architekt
 Beiträge: 2 Registriert: 01.02.2005
|
erstellt am: 01. Feb. 2005 11:08 <-- editieren / zitieren --> Unities abgeben:         
Ich würde gerne eine Ansicht asymetrisch skalieren. D.h. die Höhen bleiben 1-1 erhalten, die Längen verkürzen sich aber proportional (da ich im Geländeschnitt schräg auf das Gebäude schaue) Welches Tool kann man hierfür verwenden ? Kann man beim skalieren angeben, ob entlang der x und y oder nur der x oder nur der y- Achse skaliert wird ? Danke für Tipps Gruss Martin
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: 01. Feb. 2005 11:19 <-- editieren / zitieren --> Unities abgeben:          Nur für aldirosso
geht nur über den Zwischenschritt der Blockerstellung und _exploden nach der Skalierung ------------------ - 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 |
oandres Mitglied

 Beiträge: 80 Registriert: 24.05.2004 Windows XP Acad 2004
|
erstellt am: 01. Feb. 2005 11:56 <-- editieren / zitieren --> Unities abgeben:          Nur für aldirosso
Dann musst Du aber auch folgendes Lisp hernehmen zum Skalieren in X-Y-Richtung: (defun INSERT-SCALE (AUSWAHL X Y Z / NAME OBJEKT OBJEKTDATEN BLOCKDEF INDEX) (setq NAME(cdr(assoc 2 (entget (ssname AUSWAHL 0))))) ; und jetzt alle Blockreferenzen auf Blattebene updaten .. (setq INDEX -1) (if(setq AUSWAHL (ssget "_X" '((0 . "INSERT")))) ;(ssget "_X" (list '(0 . "INSERT")(cons 2 NAME) ))) funzt nicht bei unbenannten Blöcken ! (repeat (sslength AUSWAHL) (setq OBJEKTDATEN(entget(ssname AUSWAHL(setq INDEX(1+ INDEX))))) (if(=(strcase(cdr(assoc 2 OBJEKTDATEN))) (strcase NAME)) (progn (setq OBJEKTDATEN(subst(cons 41 (* (cdr(assoc 41 OBJEKTDATEN)) X)) (assoc 41 OBJEKTDATEN) OBJEKTDATEN ) ) (setq OBJEKTDATEN(subst(cons 42 (* (cdr(assoc 42 OBJEKTDATEN)) Y)) (assoc 42 OBJEKTDATEN) OBJEKTDATEN ) ) (setq OBJEKTDATEN(subst(cons 43 (* (cdr(assoc 43 OBJEKTDATEN)) Y)) (assoc 43 OBJEKTDATEN) OBJEKTDATEN ) ) (entmod OBJEKTDATEN) ) ) ) ) ; und jetzt alle Blockreferenzen in verschachtelten Blöcken.. (while (setq BLOCKDEF (tblnext "BLOCK" (null BLOCKDEF))) (if (and(/=(logand(cdr(assoc 70 BLOCKDEF))4)4) (or(/= (logand(cdr(assoc 70 BLOCKDEF))1)1) (=(substr (cdr(assoc 2 BLOCKDEF)) 1 2) "*U") ) ) (progn (setq OBJEKT (cdr (assoc -2 BLOCKDEF))) (while OBJEKT (setq OBJEKTDATEN (entget OBJEKT)) (if (and (=(cdr(assoc 0 OBJEKTDATEN)) "INSERT") (=(cdr(assoc 2 OBJEKTDATEN)) NAME) ) (progn (setq OBJEKTDATEN(subst(cons 41 (* (cdr(assoc 41 OBJEKTDATEN)) X)) (assoc 41 OBJEKTDATEN) OBJEKTDATEN ) ) (setq OBJEKTDATEN(subst(cons 42 (* (cdr(assoc 42 OBJEKTDATEN)) Y)) (assoc 42 OBJEKTDATEN) OBJEKTDATEN ) ) (setq OBJEKTDATEN(subst(cons 43 (* (cdr(assoc 43 OBJEKTDATEN)) Z)) (assoc 43 OBJEKTDATEN) OBJEKTDATEN ) ) (entmod OBJEKTDATEN) ) ) (setq OBJEKT (entnext OBJEKT)) ) (entupd (cdr (assoc -2 BLOCKDEF))) ) ) ) ) (defun C:INSERT-SCALE ( / AUSWAHL X Y Z ) (if (and(setq AUSWAHL (ssget "_:S" '((0 . "INSERT")))) (setq X (getreal "\nRelativen Vergrößerungsfaktor X : "))(> X 0) (setq Y (getreal "\nRelativen Vergrößerungsfaktor Y : "))(> Y 0) (setq Z (getreal "\nRelativen Vergrößerungsfaktor Z : "))(> Z 0) ) (progn (INSERT-SCALE AUSWAHL X Y Z) (command "._regen") ) (princ "\nKeine Blockreferenz gewählt!\n") ) (princ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
aldirosso Mitglied Architekt
 Beiträge: 2 Registriert: 01.02.2005
|
erstellt am: 01. Feb. 2005 12:08 <-- editieren / zitieren --> Unities abgeben:         
|
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: 01. Feb. 2005 12:16 <-- editieren / zitieren --> Unities abgeben:          Nur für aldirosso
@Oandres Ja, das Lisp kenne ich. Schöner wärs gewesen, du hättest diesen Link als Quelle mit angegeben. Na, vielleicht beim nächsten mal ?! ------------------ - 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 |
oandres Mitglied

 Beiträge: 80 Registriert: 24.05.2004 Windows XP Acad 2004
|
erstellt am: 01. Feb. 2005 13:09 <-- editieren / zitieren --> Unities abgeben:          Nur für aldirosso
|