| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Manuelle Öffnungshöhe (4395 mal gelesen)
|
lcad-maik Mitglied Dipl-Ing. FH
Beiträge: 37 Registriert: 29.09.2004 AutoCAD bis 2011 ACA 2008 + ACA 2011 pit2008 + pit2011
|
erstellt am: 02. Mai. 2011 14:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum Vor vielen Jahren entstand hier im Forum eine kleine aber feine Funktion, mit der man im ADT2005 oder ACA2008 an manuelle Bemaßungen von Fenstern, Türen oder TF-Kombinationen die Höhe dazuschreiben konnte. Dieses Lisp-Tool funktioniert leider in ACA2011 nicht mehr. Habt ihr eine Ahnung, wo der Fehler liegt?
Code:
;; ADT-Öffnungshöhe.lsp ;; ;; Ergänzt Tür oder Fensterhöhen bei manueller AEC Bemassung ;; Entstanden aus Beiträgen im Forum CAD DE zum Thema ;; Dank an tmoehlenhoff und flaschenpost ;; 31 03 2005 Frank Stemper ;;; ;;;--MAIN----MAIN----MAIN----MAIN----MAIN----MAIN----MAIN----MAIN----MAIN----MAIN----MAIN----MAIN---- ;;; (defun c:tfhb (/ oeffnh z hz hz1 hz2 oeffnh_hz dz ech) (setq ech (getvar "CMDECHO")) (setq dz (getvar "DIMZIN")) (setvar "DIMZIN" 0) (if (setq oeffnh (entsel "\nFenster,Tür oder Tür-Fenster-Kombination wählen \noder RETURN für manuelle Eingabe:")) (if (eq "AEC_WINDOW_ASSEMBLY" (cdr (assoc 0 (entget (car oeffnh))))) (setq oeffnh (cdr(assoc 40 (reverse(entget (car oeffnh)))))) (setq oeffnh (cdr(assoc 41 (reverse(entget (car oeffnh)))))) ) ;else (setq oeffnh (getreal "Höhe: ")) ) (if (= ech 0) (princ "Zu ändernden Bemaßungstext wählen:") );end ; ; Original: (setq z (substr (rtos oeffnh 2 3) 1 (strlen (rtos oeffnh 2 2)))), ; ersetzt durch nachfolgende Änderung ; ; Änderung für cm-Anzeige, wenn Höhenangabe unter 1 Meter (if (>= oeffnh 1) (setq z (substr (rtos oeffnh 2 3) 1 (strlen (rtos oeffnh 2 2)))) ;else (setq z (substr (rtos oeffnh 2 3) 3 2)) );end ; Ende der Änderung 15.11.2005 Heck; Änderung für mm-Anzeige, 1-stellig/2-stellig ; letzten 2 Stellen der Öffnungshöhe auslesen (Prüfwert) (setq hz2 (substr (rtos oeffnh 2 4)(strlen (rtos oeffnh 2 3))(strlen (rtos oeffnh 2 3)))) ; letzte Stelle des Prüfwertes auslesen (setq hz1 (substr hz2 2)) ; Prüfung 0 gleich 1-stellig, sonst 2-stellig (if (eq hz1 "0") (setq hz (substr (rtos oeffnh 2 3)(strlen (rtos oeffnh 2 3))(strlen (rtos oeffnh 2 3)))) ;else (setq hz (substr (rtos oeffnh 2 4)(strlen (rtos oeffnh 2 3))(strlen (rtos oeffnh 2 3)))) );end ; Ende der Änderung 16.11.2005 Heck ; Prüfung hz: 0 gleich ohne Hochzahl, sonst mit Hochzahl (if (eq hz "0") (setq oeffnh_hz (strcat "\\X" z)) ;else (setq oeffnh_hz (strcat "\\X" z "\\H.7x;\\S" hz ";")) ) (Command "_.-DimTextOverride" pause "s" oeffnh_hz "") (setvar "DIMZIN" dz) );end ;;; ;;;--------------------------------------------------ENDE--------------------------------------------------- ;;; ;;; (princ "\n") (princ "\ADT-Öffnungshöhe.lsp geladen ") (princ "\nAufruf: tfhb" ) (princ "\n")
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: 03. Mai. 2011 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
Hi, um die Geschichte zu Vereinfachen hättest du schreiben können, was als Fehlermeldung kommt (wenn eine kommt). Was du auch testen kannst, ob die aus der Zeile (Command "_.-DimTextOverride" pause "s" oeffnh_hz "") hervorgehenden Befehle überhaupt funktionieren. _.-DimTextOverride s Ich bin aber kein Lispler, allerdings wäre das mein Ansatz. ------------------ 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 |
lcad-maik Mitglied Dipl-Ing. FH
Beiträge: 37 Registriert: 29.09.2004 AutoCAD bis 2011 ACA 2008 + ACA 2011 pit2008 + pit2011
|
erstellt am: 03. Mai. 2011 08:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, Das manuelle Eintragen bei der Funktion geht (Option RETURN). Aber eigentlich markiert man das Fenster und dann trägt das Tool die Öffnungshöhe automatisch zur Breite des Fensters ein. (Bei AEC-Bemaßung Standard, ohne Maßketten) Nur leider kommt bei ACA2011 die Fehlermeldung: "Fehlerhafter Argumenttyp: numberp: nil" ??? Bei ACA2008 ging es noch. Was ist bei ACA2011 jetzt anders, so dass das Tool die Fensterbreite nicht mehr auslesen kann und dieses einträgt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dr-nikolai Ehrenmitglied
Beiträge: 1790 Registriert: 10.04.2002
|
erstellt am: 25. Jan. 2012 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
Hallo, ich muss mal in eigener Sache diesen Beitrag nach oben schubsen. Da ich ja bekanntlich absoluter Lisp-Legastheniker bin, aber dennoch dieses Tool in seiner eigentlichen Bestimmung benötige (automatisch die Öffnungshöhe auslesen zu können), mal meine schamlose Frage an die Lisp-Fraktion: Kann man das mit vertretbarem Aufwand für 2011/2012 gangbar machen? U´s in biblischem Ausmaß, jahrelange Anerkennung sowie Berücksichtigung in meinen Abendgebeten werden der (un)gerechte Lohn sein... Fehlermeldung in ACA 2011: Fenster,Tür oder TFK wählen oder RETURN für manuelle Eingabe:*Abbruch* Fehlerhafter Argumenttyp: numberp: nil ------------------ Gruß, Mario
Erfahrungen macht man immer kurz nachdem man sie gebraucht hätte. 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: 25. Jan. 2012 15:12 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
Hi, die Höhe kann in aktuellen Versionen nicht mehr direkt aus der Liste der Elementdaten ausgelesen werden. Mach mal aus dem (if (eq "AEC_WINDOW_ASSEMBLY" (cdr (assoc 0 (entget (car oeffnh))))) (setq oeffnh (cdr(assoc 40 (reverse(entget (car oeffnh)))))) (setq oeffnh (cdr(assoc 41 (reverse(entget (car oeffnh)))))) ) ein (setq oeffnh (vla-get-Height (vlax-ename->vla-object (car oeffnh)))) und füge sicherhaltshalber unter der (defun c:tfhb Zeile ein (vl-load-com) ein, dann sollte es wieder klappen. 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 |
dr-nikolai Ehrenmitglied
Beiträge: 1790 Registriert: 10.04.2002
|
erstellt am: 25. Jan. 2012 16:26 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
|
Harry Plotter Mitglied
Beiträge: 509 Registriert: 12.12.2003 Windows 8.1 64bit Architecture 2014 Architecture 2019
|
erstellt am: 25. Jan. 2012 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
Ich habe die Problematik mit einem Block gelöst welchen ich einfüge und dieser dann die Türhöhe aus den Eigenschaften abfragt. Wie wird bei eurer Lösung die Höhe aktualisiert wenn sich die Türhöhe ändert? 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: 25. Jan. 2012 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
nee, es wird ja nur der Maßtext überschrieben und somit finde keine automatische Änderung statt. Ein MV-Block, der den Wert aus dem Eigenschaftssatz liest ist da sicher eine gute Alternative (da der dieses Problem dann nicht hat. Dafür ist es dann halt ein separates Objekt). 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 |
Harry Plotter Mitglied
Beiträge: 509 Registriert: 12.12.2003 Windows 8.1 64bit Architecture 2014 Architecture 2019
|
erstellt am: 25. Jan. 2012 19:00 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
Seltsam ist eigentlich an der AEC Bemassung, daß die Türbreite erkannt wird (auch wenn die Tür nicht in der Wand verankert ist) die Türhöhe aber anscheinend aus dem Loch in der Wand ausgelesen wird. Das ist nicht konsequent. (Siehe Attachment). Da kann man wohl auch nichts ändern? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten-0815 Mitglied Schlosser
Beiträge: 33 Registriert: 03.01.2005 Autocad 2012 Archtectuer
|
erstellt am: 27. Jan. 2012 14:37 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
|
Virsing Mitglied Zeichenbüro, Niederösterreich
Beiträge: 196 Registriert: 02.09.2008 ACA 2014
|
erstellt am: 21. Feb. 2012 11:07 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
|
mazanek Mitglied CAD-Techniker
Beiträge: 632 Registriert: 13.06.2002 mein System: Dell Precision T7600 (Xeon E5 2x 3.3Ghz 64MB RAM) Windows 7 Pro. 64bit Nvidia Quadro K420 Autdesk Building Design Suite Premium 2017 HP Designjet T1300 & T2300
|
erstellt am: 21. Feb. 2012 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
|
Virsing Mitglied Zeichenbüro, Niederösterreich
Beiträge: 196 Registriert: 02.09.2008 ACA 2014
|
erstellt am: 21. Feb. 2012 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für lcad-maik
|