| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Änderung LINIENTYP und LINIENTYPfaktor (945 mal gelesen)
|
glocker Mitglied CAD-Systemadministrator
Beiträge: 73 Registriert: 24.06.2004 AutoCAD-Mechanical2007 auf WindowsXP
|
erstellt am: 12. Jul. 2004 10:26 <-- editieren / zitieren --> Unities abgeben:
Es sieht so aus, als wären verschiedene Elementtypen gegen einen Austausch des verwendeten Linientyps und Linientypfaktors immun. Was bei LINIE, KREISEN usw... problemlos funktioniert, ist bei den Elementtypen ELLIPSE und HATCH irgendie wirkungslos: (setq E (subst (cons 6 "VONLAYER") (assoc 6 E) E)) (setq E (subst (cons 48 1.0) (assoc 48 E) E)) (entmod E) Hat hierzu jemand einen Trick auf Lager?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 12. Jul. 2004 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für glocker
Mit ActivX gehts auf jeden Fall : Mal zwei Bsp. (vla-put-LinetypeScale (vlax-ename->vla-object (car(entsel))) 5 ) (vla-put-Linetype (vlax-ename->vla-object (car(entsel))) "Continuous" ) .. denke, die sprechen für sich. Bei Fragen.. ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 12. Jul. 2004 11:07 <-- editieren / zitieren --> Unities abgeben: Nur für glocker
|
glocker Mitglied CAD-Systemadministrator
Beiträge: 73 Registriert: 24.06.2004 AutoCAD-Mechanical2007 auf WindowsXP
|
erstellt am: 12. Jul. 2004 12:13 <-- editieren / zitieren --> Unities abgeben:
Sorry - habe mich wohl etwas unpräzise ausgedrückt: Es geht hier um das gezielte modifizieren von Fremdzeichnungen, in denen absolut ALLE Elemente einen eigenen LINIENTYP, FARBE, LINIENTYPFAKTOR und STRICHSTÄRKE besitzen - sowas gibts tatsächlich. Diese Elemente sollen nun alle in LINIENTYP=VONLAYER (bzw. LINIENTYPFAKTOR=1.0 und STRICHSTÄRKE=VONLAYER) geändert werden, damit die Definitionen unserer Mech6-Layer wirksam werden. Das funktioniert bereits sehr gut bis auf ein paar kleine Schönheitsfehler: Versucht man bei Elementen des Type HATCH, ELLIPSE, DIMENSION, MTEXT den LINIENTYP zu ändern, bleibt diese Änderung wirkungslos - das Element ist nachher wie vorher???? Derzeit verzichte ich bei diesen Elementtypen einfach auf die Änderung des Linientyps und ändere nur die restlchen Objekteigenschaften. Das Ergebnis ist zwar nicht schlecht, aber einfach nicht perfekt... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 12. Jul. 2004 13:12 <-- editieren / zitieren --> Unities abgeben: Nur für glocker
Also bei mir funz es: Anbei mal eine Routine zum Basiseigenschaften setzen ala Autolisp (also ohne ActivX). Test mal. ------------------ - Thomas -
[Diese Nachricht wurde von CADmium am 12. Jul. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 12. Jul. 2004 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für glocker
Ich sehe dein Problem nach wie vor nicht ganz. Das erste GIF zeigt, wie ich einer Ellipse den Linientyp ACAD_ISO03W100 verpasst habe. Nicht mit subst, sondern mit append! Geht doch! Im zweiten GIF habe ich ein HATCH erzeugt mit diesem Linientyp (oberes Rechteck). Die Kopie (unteres Rechteck) habe ich dann mit (entmod(subst ...)) auf CONTINUOUS gesetzt - wo ist das Problem? Zu den Bemaßungen schau mal in der DXF-Referenz: Da findest du den Hinweis, dass unter GC 2 der anonyme Block zu finden ist, der das 'Bemaßungsbild' enthält. Da(!) musst du ändern, und zwar auch wieder nicht den Block selbst, sondern das, was drin ist! Einer Schraffur einen Linientyp zu verpassen, ist schon fragwürdig genug (sieht ja auch reichlich bescheiden aus im oberen Beispiel). Einem Text kann man wohl einen Linientyp zuordnen - aber der hat wohl keinerlei Wirkung. Spätestens, wenn da TTF-Fonts im Spiel sind, dürfte auch klar werden, warum;-) GC 6 ist nun mal einer der GCs, die ausnahmslos jedem Entity zugeordnet werden können, auch wenn sie völlig Banane sind: ((-1 . <Objektname: 7ef71060> ) (0 . "POINT") (330 . <Objektname: 7ef57cf8> ) (5 . "104") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (6 . "ACAD_ISO07W100") (100 . "AcDbPoint") (10 229.056 156.843 0.0) (210 0.0 0.0 1.0) (50 . 0.0)) Die Vorgehensweise sollte also eher nicht darin liegen, solche Einträge in den Zeichnungen zu modifizieren, sondern sie zu löschen und durch ein geeignetes Layerkonzept zu ersetzen. Gruß, Axel
------------------ Meine AutoLisp-Seiten Meine private Homepage Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Jul. 2004 13:51 <-- editieren / zitieren -->
Zitat: Original erstellt von CADmium: Anbei mal eine Routine zum Basiseigenschaften setzen ala Autolisp (also ohne ActivX).
Ein Tipp: verwende in Funktionen, die wie diese hier eventuell sehr häufig aufgerufen werden, besser das schnelle CONS statt des aberwitzig langsamen APPEND. Der Laufzeitunterschied ist auch heute noch relevant. Gruß Tom Berger ------------------
|
glocker Mitglied CAD-Systemadministrator
Beiträge: 73 Registriert: 24.06.2004 AutoCAD-Mechanical2007 auf WindowsXP
|
erstellt am: 12. Jul. 2004 15:02 <-- editieren / zitieren --> Unities abgeben:
Prima - jetzt funktioniert's! Der Schlüssel lag im Lisp-Beispiel von Tom Berger: Nachdem ich den Wert für den Linientyp von "VONLAYER" in "BYLAYER" geändert habe, werden auch meine Problemelemente korrekt gebügelt! Kleine Ursache - große Wirkung! Auch Axel hat recht - die einzige Aufgabe meines Konvertierungstools ist das Beseitigen der störenden Obketeigenschaften, damit das Layerkonzept von Mech6 wieder greift und meine Anwender "normal" mit den Daten weiterarbeiten können... Soweit vielen Dank für die Hilfe aber nicht zu früh gefreut - ich bin noch lange nicht fertig... Gruß Helmut Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |