| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: Block mit Attribut(en) einsetzen (1006 mal gelesen)
|
cm-Zeichner Mitglied Vermessungstechniker
 
 Beiträge: 162 Registriert: 23.07.2009 Win7Pro 64Bit, AutoCAD Map3D 2014 64Bit
|
erstellt am: 12. Okt. 2012 08:39 <-- editieren / zitieren --> Unities abgeben:         
Verwende ein kleines Unterprogramm zum Einsetzen von Blöcken mit einer frei zu wählenden Einsetzrichtung. Funktioniert bei Blöcken ohne Attribut sowie bei Blöcken mit 1 oder mehreren Attributen. Werde nach der Eingabe der Einsetzrichtung nach den einzelnen Attributwerten gefragt (Natürlich nur wenn der Block Attribute enthält). Code:
(defun aufforderung () (setq OLDLAY (getvar "CLAYER")) (setq p1 (getpoint "\nEinfügepunkt: ")) (setq wink (getangle p1 "\nEinsetzrichtung: \n")) (setq wink (angtos wink 2 4))(command "_.LAYER" "_SET" BL "") ; BL=Blocklayer wird im Aufruf definiert (setq OMODE (getvar "OSMODE")) (setvar "OSMODE" 0) (command "_.INSERT" BN ; BN=Blockname wird im Aufruf definiert p1 ; Einfügepunkt (* (scale) 0.001) ; Größe X "" ; für Größe Y übernehmen wink ; Drehung );command (setvar "OSMODE" OMODE) (setvar "CLAYER" OLDLAY) (princ) ; muss bleiben wegen Rückmeldung )
Will ich dieses Unterprogramm jedoch so lange laufen lassen bis ich es mit der rechten Maustaste beim Einfügepunkt abbreche funktioniert das sobald der Block Attribute enthält nicht mehr - ich werde nur mehr nach den Einfügepunkten gefragt. Was läuft da falsch. Code:
defun aufforderung_unend ()(defun *error* (msg) (if (or (/= msg "Funktion abgebrochen") (= msg "Beenden/Verlassen abbrechen") ) (princ) (princ) ) ) (setq OLDLAY (getvar "CLAYER")) (setq p1 (getpoint "\nEinfügepunkt: ")) (if (= p1 nil)(exit)) (setq wink (getangle p1 "\nEinsetzrichtung: \n")) (setq wink (angtos wink 2 4)) (command "_.LAYER" "_SET" BL "") ; Blocklayer (setq OMODE (getvar "OSMODE")) (setvar "OSMODE" 0) (command "_.INSERT" BN ; Blockname p1 ; Einfügepunkt (* (scale) 0.001) ; Größe X "" ; für Größe Y übernehmen wink ; Drehung );command (setvar "OSMODE" OMODE) (setvar "CLAYER" OLDLAY) (princ) ; muss bleiben wegen Rückmeldung (aufforderung_unend) )
------------------ Grüße Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
    
 Beiträge: 1776 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 12. Okt. 2012 09:00 <-- editieren / zitieren --> Unities abgeben:          Nur für cm-Zeichner
Hallo Bernd, hier nur eine Antwort auf Verdacht, ich habe Deinen Beitrag nur überflogen: Zu Beginn die Systemvariable "ATTREQ" auf 0 stellen, dann werden keine Attributswerte abgefragt. Diese kannst Du dann später über ENTMOD ändern. Dann ist es auch egal, wieviele Attribute enthalten sind. ------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 12. Okt. 2012 09:02 <-- editieren / zitieren --> Unities abgeben:          Nur für cm-Zeichner
|
cm-Zeichner Mitglied Vermessungstechniker
 
 Beiträge: 162 Registriert: 23.07.2009 Win7Pro 64Bit, AutoCAD Map3D 2014 64Bit
|
erstellt am: 12. Okt. 2012 09:18 <-- editieren / zitieren --> Unities abgeben:         
@CADmium Funktioniert - Danke. Gibt´s da auch noch eine Möglichkeit die Eingabeauffordrung anzuzeigen, weil jetzt ist ja nur eine Leerzeile da ohne irgend einen Text. ------------------ Grüße Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 12. Okt. 2012 09:50 <-- editieren / zitieren --> Unities abgeben:          Nur für cm-Zeichner
|

| Anzeige: | Infos zum Werbeplatz >> | isaleCAD CAD APP für Tiefbau, Umwelt Since 1985, AnkiSOFT Software developes software to design infrastructure projects.
isaleCAD has been developed for Water Transmission Line Design. It is for Drawing / Modelling / Planning / Design / Analyze the water transmission line.
The software works under AutoCAD or ZWCAD.
|
|
cm-Zeichner Mitglied Vermessungstechniker
 
 Beiträge: 162 Registriert: 23.07.2009 Win7Pro 64Bit, AutoCAD Map3D 2014 64Bit
|
erstellt am: 12. Okt. 2012 10:02 <-- editieren / zitieren --> Unities abgeben:         
Ich verwende diesen Befehl zum Einfügen aller Blöcke mit einem Einfügewinkel diese haben manchmal kein Attribut, manchmal 1 oder mehr. Auf jedenfall ist die Eingabeaufforderung aber immer ein anderer Text - zB. Hausnummer, Straßenname, Baumumfang Bei 2 Attributen zB. Blattnr. westlich, Blattnr. östlich ------------------ Grüße Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |