| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: entnext für nächstes Blockelement (1508 mal gelesen)
|
SHP Mitglied Konstrukteur
   
 Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 25. Okt. 2004 12:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich hab folgendes Problem. Habe aus Inventor eine Zeichnung auf Acad-Mechanical gespeichert. Die Bohrungsinfos ais Inventor kommen als Blöcke nach Acad. Normalerweise wenn ich einen Block mit entsel anwähle, bekomme ich bei entnext das nächste Element vom Block. Aber warum nicht hier (siehe Anhang). ------------------ Gruß Hans-Peter  Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4191 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 25. Okt. 2004 12:08 <-- editieren / zitieren --> Unities abgeben:          Nur für SHP
Hallo Hans-Peter, das ist ganz logisch, denn ein INSERT (Blockreferenz) hat nur dann ein nächstes Element, wenn dieser über variable Attribute verfügt. Du musst dann wahrscheinlich in die Blocktabelle, und dort die Blockdefinition nach dem nächsten Element durchsuchen. (entget(tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel))))))) Damit hast du erst einmal die Blockdefinition. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
   
 Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 25. Okt. 2004 13:44 <-- editieren / zitieren --> Unities abgeben:         
|
cadffm Moderator 良い精神
       

 Beiträge: 22477 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Okt. 2004 13:52 <-- editieren / zitieren --> Unities abgeben:          Nur für SHP
Evtl sind deine Texte mit der Farbe "vonlayer" - in diesem Fall fehlt der gc62 ! sehe dir das mal an, schaue dir die Entitylist eines Elementes an welches die Farbe VONLAYER hat.. Du mußt also Prüfen ob gc62 überhaupt vorhanden ist um mit SUBST etwas zu tauschen. ------------------ .Signatur hat derzeit leider Urlaub. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
   
 Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 25. Okt. 2004 14:02 <-- editieren / zitieren --> Unities abgeben:         
|
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 25. Okt. 2004 14:08 <-- editieren / zitieren --> Unities abgeben:          Nur für SHP
(defun binfotxt_color ( / BLOCK ob subenti farbe) (setq BLOCK (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel))))))) (setq OB BLOCK) (while (setq ob (entnext ob)) (if (=(cdr(assoc 0 (setq subenti(entget ob))))"MTEXT") (progn (princ "\nMTEXT vorhanden") (if (assoc 62 subenti) (setq subenti (subst (cons 62 2) (assoc 62 subenti) subenti)) (setq subenti (append subenti (list(cons 62 2)))) ) (entmod subenti) ) ) ) (entupd block) (command "_regen") ) ------------------ - 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 |
cadffm Moderator 良い精神
       

 Beiträge: 22477 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Okt. 2004 14:12 <-- editieren / zitieren --> Unities abgeben:          Nur für SHP
Also jetzt verstehe ich dich nicht mehr: 1. du sagst in etwa "irgendwas geht nicht" Da das Lisp aber funktioniert dachte ich das du evtl ein Insert wählst in dem im Block der Mtext die Farbe "vonlayer" aufweist, deswegen klappt dein Code an dieser Stelle auch nicht ! (siehe Code von CADmium, der hat diese "Möglichkeit" berücksichtigt..) was du nun aber mit 255,0,0 hast ist mir unverständlich ???
------------------ .Signatur hat derzeit leider Urlaub. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 25. Okt. 2004 14:16 <-- editieren / zitieren --> Unities abgeben:          Nur für SHP
achso auch noch Truecolor in RGB-Farben <dream> ..- glaub ich aber nicht - da müßtest du den 420 'er GC auch setzen. Bei Farbbüchern auch den 430'er ------------------ - 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 |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4191 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 25. Okt. 2004 14:17 <-- editieren / zitieren --> Unities abgeben:          Nur für SHP
Hallo Hans-Peter, MTexten werden die Eigenschaften nicht nur über die Gruppencodes des Elementes zugewiesen. So kann der Text selbst formatiert sein, die Farbe also im String (was dann GC 1 ist) enthalten sein. Gleich verhält es sich auch mit Textstilen, Fonts usw. Diese Formatierungen haben Vorrang vor den Gruppencodes. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
   
 Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 25. Okt. 2004 14:25 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das Problem ist, daß der MTEXT von Inventor nicht rot sondern 255,0,0 rüberkommt. Wenn ich jetzt einen Block exlodiere und die Farbe auf Rot ändere und wieder einen Block erzeuge, funktioniert die Routine von CADmium. Bei einem Originalblock leider nicht. Ich hab noch die Entitiliste angehängt, hoffentlich hab ich jetzt alle Unklarheiten beseitigt. Wenn nähmlich der Inventor Rot rausschreiben würde bräuchte ich diese Routine auch gar nicht. Aber das macht er hald so.
------------------ Gruß Hans-Peter  Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 25. Okt. 2004 14:38 <-- editieren / zitieren --> Unities abgeben:          Nur für SHP
na dann : (defun binfotxt_color ( / BLOCK ob subenti farbe) (setq BLOCK (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel))))))) (setq OB BLOCK) (while (setq ob (entnext ob)) (if (=(cdr(assoc 0 (setq subenti(entget ob))))"MTEXT") (progn (princ "\nMTEXT vorhanden") (setq subenti(vl-remove-if '(lambda(x) (member (car X)'(420)))subenti)) (if (assoc 62 subenti) (setq subenti (subst (cons 62 2) (assoc 62 subenti) subenti)) (setq subenti (append subenti (list(cons 62 2)))) ) (entmod subenti) ) ) ) (entupd block) (command "_regen") ) ------------------ - 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 |
SHP Mitglied Konstrukteur
   
 Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 25. Okt. 2004 14:46 <-- editieren / zitieren --> Unities abgeben:         
|
SHP Mitglied Konstrukteur
   
 Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 26. Okt. 2004 10:31 <-- editieren / zitieren --> Unities abgeben:         
|