| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Autocad Architecture schiefwinkelige Räume aus Aufmaßen von Raumseiten und Diagonalen (3020 mal gelesen)
|
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 21. Jun. 2010 12:19 <-- editieren / zitieren --> Unities abgeben:
Ich habe häufig schiefwinkelige Räume aus Aufmaßen von Raumseiten und Diagonalen zu zeichnen (und glaube dabei nicht allein zu sein). Ist es möglich einen nächsten Wandteil nach dem Zeichnen des vorherigen ohne Hilfskonstruktion „1.Kreis für Diagonale vom Anfangspunkt der vorherigen Wandseite – 2.Kreis für Länge der nächsten Wandseite vom Endpunkt der vorherigen Wandseite“ durch Eingabe der Längen der Diagonale und der nächsten Wand zu zeichnen? Kennt jemand eine Lisp oder VBA Routine mit der so etwas komfortabel geht? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
charlieBV Ehrenmitglied V.I.P. h.c. Bauzeichnerin
Beiträge: 9318 Registriert: 28.08.2003 Win 10 Pro
|
erstellt am: 21. Jun. 2010 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Lindner
Hi, ich gebe zu, dass es der erste Tag nach meinem Urlaub ist, und mein Hirn noch nicht ganz betriebstemperatur erreicht hat, aber auch nach dem 3. mal lesen, verstehe ich nicht, was du meinst.... wäre vielleicht @x,y was für dich? Wenn nein, dann wäre eine kleine Skizze hilfreich, was du machen möchtest. Ich habe zumindest noch nie Kreise gezeichnet, um meine Wände zu produzieren, vielleicht gibt das Hoffnung. ------------------ Gruß Yvonne Inoffizielle ADT-Help-Site "Gehe nicht, wohin der Weg führen mag, sondern dorthin, wo kein Weg ist, und hinterlasse eine Spur." Jean Paul Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 21. Jun. 2010 14:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Yvonne, tut mir leid, wenn ich mich zu kompliziert ausgedrückt habe. Ausserdem bin ich kein geübter Zeichner. Ich habe eine Skizze als pdf beigelegt. Ich zeichne den ersten Wandteil von Punkt 1 bis 2. Um den nächsten Wandteil mit Ende Punkt 3 zu zeichnen steht mir die Länge dieses Wandteils und die Raumdiagonale zur Verfügung. Mit @x,y wird das wohl nicht gehen. Gruß Walter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
charlieBV Ehrenmitglied V.I.P. h.c. Bauzeichnerin
Beiträge: 9318 Registriert: 28.08.2003 Win 10 Pro
|
erstellt am: 21. Jun. 2010 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Lindner
|
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 21. Jun. 2010 14:38 <-- editieren / zitieren --> Unities abgeben:
Danke jedenfalls für Deine Antwort. Vieleicht kennt jemand anderer eine bessere Lösung. Es müsste doch eine kleine Routine für so einen Fall geben. In den meisten Altbauten sind Räume schiefwinkelig. Und bei Kleinumbauten zahlt es sich nicht unbedingt aus eine Punktaufnahme vom Geometer machen zu lassen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Moderator Architekt
Beiträge: 5885 Registriert: 09.11.2001 AutoCAD Architecture 2023 WIN 10
|
erstellt am: 21. Jun. 2010 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Lindner
Hallo Walter, Verformungsgerechte Bauaufnahmen habe ich auch mal gemacht. Ohne Lisp, falls es die überhaupt gibt, habe ich erst ein Liniennetz (Rauminnenmaße) gezeichnet, und dann dieses in Wände umgewandelt. So blieb mir das Hantieren mit den Wänden erspart. Vielleicht hilft dir diese Idee...? Lothar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 21. Jun. 2010 22:54 <-- editieren / zitieren --> Unities abgeben:
Hallo Lothar, danke für Deine Anregung. Das ist sicherlich eine Erleichterung. Aber auch um das Liniennetz bei nichtrechtwinkeligen Wänden zu zeichnen benötige ich die zwei Hilfskreise. Da muss es doch eine Routine geben. Derartige Räume sind doch keine Seltenheit. PS: Für die Flächenberechnung von allgemeinen Dreiecken über die Eingabe von drei Seitenlängen habe ich in VBA für Excel eine Funktion mit der Heronschen Flächenformel geschrieben. Das war relativ einfach. Aber für das Schreiben von Routinen für Acad architecture verfüge ich leider nicht über genügend Kenntnisse bzw. ist mir der Aufwand diese wegen der gewünschten Funktion zu lernen derzeit zu groß. Gruß Walter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 25. Jun. 2010 23:10 <-- editieren / zitieren --> Unities abgeben:
In 2D habe ich mittlerweile Fortschritte gemacht. Im Prinzip geht es um das Zeichnen eines allgemeinen Dreiecks durch Bekanntsein von drei Seitenlängen. Eine Seite - die Diagonale ist am Ende zu löschen. Autocad kennt keinen Befehl "Dreieck". Auch "Polygon" mit drei Seiten erzeugt nur ein gleichseitiges Dreieck. In einem tschechischem Forum fand ich aber die kostenlose Routine "Triangle": http://www.cadforum.cz/cadforum_en/qaID.asp?tip=6455 (ich hoffe es ist hier nicht untersagt Hinweise auf andere Foren zu geben). Da die Datei als .vlx kompiliert ist kann ich darin nichts ändern. Das Ergebnis ist jedenfalls ein Polyliniendreieck (um die Diagonale zu löschen muss man dieses mit "Ursprung" oder _explode zuvor auflösen). Die Datei mit APPLOAD laden. Ab dann steht der Befehl Triangle zur Verfügung. Dreieck entweder durch Angabe von drei Seitenlängen (oder eine Seite und zwei Winkel...) Wenn es sich um einen 4-seitigen Raum handelt muss man beim zweiten Dreieck als erste Seite die Endpunkte der zuvor gelöschten Diagonale nehmen. Hier im Cad.de Forum wurde ich aber auch mit einer "Dreieck" Lisp Datei fündig. Um ein erstes allgemeines Dreieck zu Zeichnen reicht sie aus, aber dann fehlt dem Programmcode die Möglichkeit die zwei Endpunkte der ersten Diagonale anwählen zu können. Vieleicht gibt es unter Euch einen Lisp-Kundigen der da weiter hilft. Für alle die den Code ausprobieren wollen sich aber mit Lisp nicht so auskennen: Den nachfolgenden Code mit einem Editor (nicht mit Word) in einer Datei mit Namen z.B. Dreieck.lisp abspeichern. Diese z.B. per Drag and Drop in die aktuelle Zeichnung ziehen. Ab dann steht der Befehl "Dreieck" zur Verfügung. Vieleicht wird eine solche Routine in autocad 2020 einmal eingebaut ;-) und 2030 für Wände in autocad architecture ;-)) (defun c reieck (/ PA PB PC W A B C cosALPHA ALPHA) (if(and(setq PA (getpoint "\nECKPUNKT A :")) (setq W (getangle PA "\nWinkel der Seite c :")) (setq A (getreal "\nLänge der Seite a : ")) (setq B (getreal "\nLänge der Seite b : ")) (setq C (getreal "\nLänge der Seite c : ")) ) (progn (setq PB(mapcar '+ PA (list(*(cos W)C)(*(sin W)C) 0.0))) (setq cosALPHA(/(-(+(* B B)(* C C))(* A A))(* 2 B C))) (setq ALPHA (cond ((= cosALPHA 0) (/ PI 2)) ((>= 1 cosALPHA 0) (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA)) ) ((<= -1 0) (+ PI (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA))) ) ) ) (setq PC(mapcar '+ PA (list(*(cos (+ ALPHA W))B)(*(sin (+ ALPHA W))B) 0.0))) (command "_pline" PA PB PC "_c") ) ) ) [Diese Nachricht wurde von Walter Lindner am 25. Jun. 2010 editiert.]
[Diese Nachricht wurde von Walter Lindner am 25. Jun. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 25. Jun. 2010 23:17 <-- editieren / zitieren --> Unities abgeben:
Jetzt sollte der Code richtig dargestellt werden: Code: (defun c:Dreieck (/ PA PB PC W A B C cosALPHA ALPHA) (if(and(setq PA (getpoint "\nECKPUNKT A :")) (setq W (getangle PA "\nWinkel der Seite c :")) (setq A (getreal "\nLänge der Seite a : ")) (setq B (getreal "\nLänge der Seite b : ")) (setq C (getreal "\nLänge der Seite c : ")) ) (progn (setq PB(mapcar '+ PA (list(*(cos W)C)(*(sin W)C) 0.0))) (setq cosALPHA(/(-(+(* B B)(* C C))(* A A))(* 2 B C))) (setq ALPHA (cond ((= cosALPHA 0) (/ PI 2)) ((>= 1 cosALPHA 0) (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA)) ) ((<= -1 0) (+ PI (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA))) ) ) ) (setq PC(mapcar '+ PA (list(*(cos (+ ALPHA W))B)(*(sin (+ ALPHA W))B) 0.0))) (command "_pline" PA PB PC "_c") ) ) )
[Diese Nachricht wurde von Walter Lindner am 26. Jun. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 25. Jun. 2010 23:20 <-- editieren / zitieren --> Unities abgeben:
|
charlieBV Ehrenmitglied V.I.P. h.c. Bauzeichnerin
Beiträge: 9318 Registriert: 28.08.2003 Win 10 Pro
|
erstellt am: 26. Jun. 2010 13:53 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Lindner
|
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 26. Jun. 2010 14:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Yvonne, danke für Deine Hilfe. Jetzt wird der Code richtig ohne Smiley dargestellt Mittlerweile konnte ich die lisp auch so ändern, dass keine Polylinien sondern einzelne Linien gezeichnet werden. So ist es einfach die Diagonale zu löschen: Code: (defun c:Dreieck (/ PA PB PC W A B C cosALPHA ALPHA) (if(and(setq PA (getpoint "\nAnfangspunkt :")) (setq W (getangle PA "\nWinkel der ersten Seite :")) (setq C (getreal "\nLänge der ersten Seite : ")) (setq A (getreal "\nLänge der zweiten Seite : ")) (setq B (getreal "\nLänge der dritten Seite : ")) ) (progn (setq PB(mapcar '+ PA (list(*(cos W)C)(*(sin W)C) 0.0))) (setq cosALPHA(/(-(+(* B B)(* C C))(* A A))(* 2 B C))) (setq ALPHA (cond ((= cosALPHA 0) (/ PI 2)) ((>= 1 cosALPHA 0) (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA)) ) ((<= -1 0) (+ PI (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA))) ) ) ) (setq PC(mapcar '+ PA (list(*(cos (+ ALPHA W))B)(*(sin (+ ALPHA W))B) 0.0))) (command "linie" PA PB PC "_C") ) ) )
Gruß Walter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 27. Jun. 2010 11:52 <-- editieren / zitieren --> Unities abgeben:
Es ist mir gelungen die lisp für die gewünschte Wanderstellung umzuschreiben: An eine VORHANDENE Wand Punkt1 bis Punkt2 soll ein weiterer Wandteil Punkt2 bis Punkt3 gezeichnet werden. Bekannt ist die Länge der Wand von Punkt2 bis Punkt3 sowie der Abstand Punkt1 bis Punkt3 (die Raumdiagonale). Der Befehl lautet: Wand von Punkt(Punkt2 klicken), Wandlänge(Länge eingeben), Bezugspunkt(Punkt1 klicken), Abstand vom Bezugspunkt(Abstand eingeben)>Wand von Punkt2 bis Punkt3 wird gezeichnet. Code: (defun c:WandLA (/ PA PB PC W A B C cosALPHA ALPHA) (if(and(setq PB (getpoint "\nWand von Punkt : ")) (setq A (getreal "\nWandlänge : ")) (setq PA (getpoint "\nBezugspunkt :")) (setq B (getreal "\nAbstand von Bezugspunkt : ")) ) (progn (setq W (angle PA PB)) (setq C (distance PA PB)) (setq cosALPHA(/(-(+(* B B)(* C C))(* A A))(* 2 B C))) (setq ALPHA (cond ((= cosALPHA 0) (/ PI 2)) ((>= 1 cosALPHA 0) (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA)) ) ((<= -1 0) (+ PI (atan(/(sqrt(- 1.0 (* cosALPHA cosALPHA)))cosALPHA))) ) ) ) (setq PC(mapcar '+ PA (list(*(cos (+ ALPHA W))B)(*(sin (+ ALPHA W))B) 0.0))) (command "WallAdd" PB PC "_C") ) ) )
PPS: Für das Zeichnen eines allgemeinen Dreiecks kann ich jedem nur die Funktion "Triangel" von http://www.cadforum.cz/cadforum_en/download.asp?fileID=865 empfehlen. Es ist wirklich unverständlich, dass autocad nach so vielen teuren Updates diese Funktion noch immer nicht integriert hat.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Moderator Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 AutoCAD, AutoCAD Architecture, Revit Architecture, Building Design und Honeymoon Suite und das ganze auch gerne mal auf einem Mac
|
erstellt am: 27. Jun. 2010 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Lindner
Den ganzen Raum könnte man dann mit folgendem Progrämmchen erzeugen lassen: Code:
(defun c:ZeichneRaum (/ AP WI L1 L2 L3 L4 D1) (setq AP (getpoint "\nAnfangspunkt :") WI (getangle AP "\nWinkel der ersten Seite :") L1 (getreal "\nLänge der ersten Seite : ") L2 (getreal "\nLänge der zweiten Seite : ") D1 (getreal "\nLänge der 1. Diagonale : ") L3 (getreal "\nLänge der dritten Seite : ") L4 (getreal "\nLänge der vierten Seite : ") ) (if (and AP WI L1 L2 L3 L4 D1) (progn (setq w2 (ZeichneDreieck ap wi L1 L2 D1 nil)) (ZeichneDreieck ap w2 D1 L3 L4 T) ) ) )(defun ZeichneDreieck (pa w c a b flag / PB PC cosALPHA ALPHA) (setq PB (mapcar '+ PA (list (* (cos W) C) (* (sin W) C) 0.0))) (setq cosALPHA (/ (- (+ (* B B) (* C C)) (* A A)) (* 2 B C))) (setq ALPHA (cond ((= cosALPHA 0) (/ PI 2)) ((>= 1 cosALPHA 0) (atan (/ (sqrt (- 1.0 (* cosALPHA cosALPHA))) cosALPHA)) ) ((<= -1 0) (+ PI (atan (/ (sqrt (- 1.0 (* cosALPHA cosALPHA))) cosALPHA)) ) ) ) ) (setq PC (mapcar '+ PA (list (* (cos (+ ALPHA W)) B) (* (sin (+ ALPHA W)) B) 0.0) ) ) (if flag (command "_aecwalladd" "ausrichten" "links" pb pc pa "") ;else (command "_aecwalladd" "ausrichten" "links" pa pb pc "") ) (angle pa pc) )
Ich habe nur das Dreieckslinienprogramm etwas verändert und es wäre neu geschrieben sicher "eleganter", aber zumindest in meinen Versuchen erfüllt es seinen Zweck und das ist ja zunächst mal die Hauptsache. BTW: Natürlich könnte alles mögliche in einem "teuren Update" vorhanden sein, aber wenn ich drei Kunden befrage bekomme ich 5 Antworten was zunächst am wichtigsten wäre. Netterweise kann man sich ja i.d.R. mit einem kleinen Prog flink weiterhelfen (lassen) sayonara Torsten ACAD-Systemhaus Bremen ------------------ Tadle nicht den Fluss, wenn Du ins Wasser fällst. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Lindner Mitglied Architekt
Beiträge: 15 Registriert: 30.04.2005 XPPro, Autocad Architecture 2011
|
erstellt am: 27. Jun. 2010 13:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Torsten, toll, Danke! Da sieht man eben wie die Könner programmieren. Unsereins ein einfacher Architekt hat es da etwas schwerer. Eine kleine Info: Beim Laden wird missverständlich ZeichneDreieck statt dem eigentlich zur Verfügung stehenden ZeichneRaum Befehl gemeldet. Vieleicht findet sich noch jemand der das Programm etwas eleganter umschreibt, damit man nicht "blind" im Raum Werte eingeben muss. Ich bitte mir meine sanfte Kritik an der noch nicht zur Verfügung stehenden Dreiecksroutine in Autocad zu verzeihen, aber das Dreieck (siehe das von mir erwähnte "triangel") ist doch wirklich kein so exotischer Wunsch und für Profis nicht so schwer zu schreiben. herzliche Sonntagswünsche aus Salzburg Walter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
surfen281 Mitglied Student
Beiträge: 499 Registriert: 08.09.2002 ACA 2023
|
erstellt am: 29. Jun. 2010 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Lindner
|