| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Raumstempel / Beschrift - Beschränkung auf Objekt lösen (1515 mal gelesen)
|
snoopyonline Mitglied Architekt
Beiträge: 192 Registriert: 17.05.2003
|
erstellt am: 06. Okt. 2012 17:52 <-- editieren / zitieren --> Unities abgeben:
Hallo ACA-Forum, ich habe ein kleines Problem mit bereits erstellten Raumstempeln! Bekannterweise kann man im ACA bei Raumstempeln (und anderen MV-Blöcken als Objektbeschriftungen) wählen, ob die Raumstempel auf den zu beschriftenden Raum "beschränkt" sind - sich also beim Verschieben des Raumes mitverschieben - oder nicht. Bei Fenster- und Türstempeln ist diese Beschränkung eigentlich wunderbar, bei Raumsempeln aber eher unerwünscht. Leider habe ich jetzt einige Zeichnungsdateien mit über 1000 Raumstempeln, von denen ein guter Teil jetzt unerwünschterweise auf die jeweiligen Räume beschränkt ist und bei jeder größeren Raumänderung jetzt wild in der Zeichnung hin und her springt. Hat irgendjemand eine Idee, wie ich diese Beschränkung EFFIZIENT nachträglich wieder lösen kann? Der einzige mir bekannte Weg, jeden einzelnen Stempel mit "Beschriftungsanker" -> "Objekt wählen" erneut zu verknüpfen und dabei "Auf Objekt beschränken?" mit "nein" zu beantworten ist dabei leider etwas umständlich. Zum einen wegen der Anzahl der betroffenen Stempel und zum anderen, da man dabei früher oder später doch wieder das vorausgewählte "ja" bei der entscheidenden Frage aktiviert. Ich habe bereits versucht, das Problem mit einer Lisp-Schleife etwas einfacher zu gestalten: Code:
(defun c:setanchor (/ stamp room) (repeat 1000 (setq stamp (car(entsel "\Stempel auswählen:"))) (setq room (car(entsel "\Raum auswählen:"))) (command "_taganchorset" stamp room "n") ))
Leider ist entweder mein Script falsch oder die Funktion TAGANCHORSET streubt sich aus anderen Gründen gegen die Lsip-Steuerung. Für jede Hilfe - entweder mit ACA-Mitteln oder bzgl. meines Lisp-Versuchs - wäre ich euch sehr dankbar... Sebastian ------------------ http://www.sebastian-schild.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9737 Registriert: 01.12.2003 AutoCAD 2.5 - 201x, Civil 3D, LDD, MDT, RD, ADT AutoCAD Architecture 2012-2017 Win7x64
|
erstellt am: 08. Okt. 2012 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
Ich kenn mich mit ACA nicht aus, aber wenn die Raumstempel nicht verschoben werden sollen, könntest du die Verankerung zum Raum doch komplett löschen (TAGANCHOR Lösen bzw gleich TAGANCHORRELEASE), allerdings wird der Inhalt dann nicht mehr aktualisiert.. Deshalb hab ich dein Makro etwas angepasst, so das es wie vorgesehen läuft.
Code:
(defun c:setanchor (/ stamp room) (while (setq stamp (car(entsel "\nStempel auswählen:"))) (if (setq room (entsel "\nRaum auswählen:")) (command "_taganchorset" stamp "" room "_n") ) ) )
Das ganze ließe sich aber auch weiter automatisieren, so dass auf Knopdruck alle Raumbeschriftungen aktualisiert werden. Dazu ausgehend von der Raumbeschriftung das Ankerobjekt (Handle/Ankerreferenz vla-getAnchor) ermitteln und dann wie oben bearbeiten. ------------------ Mit freundlichem Gruß
Udo Hübner www.CAD-Huebner.de [Diese Nachricht wurde von CAD-Huebner am 08. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wilfried Nelkel Mitglied glaubt mir eh keiner
Beiträge: 804 Registriert: 15.03.2001
|
erstellt am: 08. Okt. 2012 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für snoopyonline
Hallo, also grundsätzlich würde ich hier kein Repeat einfügen. Du kannst, wenn Du einen Befehl über C:xxxx erstellst, diesen bequem mit der Leertaste wiederholen. Dann solltest Du nach der Variablen stamp automatisch die Objektwahl der Stempel abschließen. Hier kannst Du nämlich mehrere Stempel wählen. Also ein "" nach stamp einfügen (nicht getestet). (command "_taganchorset" stamp room "n") Um solche Probleme zukünftig zu vermeiden, anbei eine Anleitung um die Beschränkung von Bauteilstempel auf Objekte zu verhindern. ------------------ Schöne Grüsse Wilfried Nelkel http://www.cad-nelkel.de http://www.schulungshandbuch.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
snoopyonline Mitglied Architekt
Beiträge: 192 Registriert: 17.05.2003 Rechner: i5-2500@3.3 GHz, 16GB RAM, Windows7 64bit Software: ACA2013, BDS Premium 2015/2016
|
erstellt am: 08. Okt. 2012 22:15 <-- editieren / zitieren --> Unities abgeben:
@Udo Hübner: Vielen Dank für die Korrektur meines Lisp-Schnipsels. Funktioniert einwandfrei und wird mir die Arbeit deutlich vereinfachen. Auch wenn ich einen entscheidenden Punkt nicht ganz verstehe: Wenn ich den Command-Aufruf in meinem alten Script an deine Variante anpasse (also "" und das "_n") am Ende kommt dort immer noch eine Fehlermeldung Unbekannter Befehl "N". Was ist der Unterschied bei deinem Aufruf mit "while" zu meinem "repeat" Versuch? Und da ich bei Lisp bisher nie das Gefühl hatte, es mal zu "verstehen", klingt deine Idee mit dem automatischen Update über die ermittelten Handle/Ankerreferenzen zwar traumhaft, übersteigt aber mein derzeitigen Lisp-Horizont. @Wilfried Nelkel: Die Thematik mit der Vorgabe "nicht beschränken" in den Werkzeugpaletten ist mir bekannt. Die Stempel-Werkzeuge sind in unserem Büroaucj korrekt eingestellt. Sobald man aber nicht jeden Stempel frisch aus der Palette zieht, sondern auch Stempel innerhalb der Zeichnung kopiert und an andere Räume knüpft (und dabei die Standard-Option Beschränken "ja" erwischt) entsteht das Problem dann doch. Und mit "Gleiches Objekt hinzufügen" wird der Fehler dann gleich weiter potenziert. Aus diesem Grund sind ja auch "nur" ca. 200 der über tausend Raumstempel unglücklich zugewiesen.
Aber dennoch vielen Dank für den Hinweis... Mit freundlichem Gruß, Sebastian Schild ------------------ http://www.sebastian-schild.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|