| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Globale Breite in Strichstärke umwandeln (3396 mal gelesen)
|
wuehlmaus Mitglied Landschaftsarchitekt
Beiträge: 350 Registriert: 03.12.2010 win 10, win7 64bit, ISDP 2016-2018(9)iRenderNXT, thearender, SketchUP, Adobe CS 5.5 DesignSuite
|
erstellt am: 06. Mai. 2014 10:52 <-- editieren / zitieren --> Unities abgeben:
Hallo werte AutoCAD-User, ich habe mal wieder ein Problem: Wir haben Zeichnungen in denen die Polylinien globale Breiten aufweisen. Diese Breiten spiegeln die Strichstärke wider. Jetzt sollen diese globalen Breiten so verändert werden, dass sie in "Strichstärken" geändert werden. Soll konkret folgendes heißen: auf dem Layer 0815 gibt es Polylinien mit einer gobalen Breite von z.B. 0.35, 0.15 und 0.5. Diese Polylinien sollen später alle eine gobale Breite von 0 haben, aber die Strichstärke von 0.35, 0.15 ... d.h. ich kann nicht einfach alle Elemente auf eine globale Breite von 0 setzen und dann die Strichstärke des Layers 0815 auf 0.35, da ja leider noch die Objekte mit 0.15 und 0.5 drauf liegen. Mir ist klar, dass ich jeweils über die Schnellauswahl, bzw. Filter manuell die Objekte mit einer goblaen Breite von 0.35 auswählen kann und diese dann in Strichstärke 0.35 verändere - aber geht dies auch ein wenig "automatischer" ... chris ------------------ www.Gestalten-mit-AutoCAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 06. Mai. 2014 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für wuehlmaus
|
wuehlmaus Mitglied Landschaftsarchitekt
Beiträge: 350 Registriert: 03.12.2010 win 10, win7 64bit, ISDP 2016-2018(9)iRenderNXT, thearender, SketchUP, Adobe CS 5.5 DesignSuite
|
erstellt am: 06. Mai. 2014 11:44 <-- editieren / zitieren --> Unities abgeben:
|
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 06. Mai. 2014 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für wuehlmaus
Eine fertige Lösung dafür habe ich nicht, aber mit ein paar LISP-Zeilen sollte das machbar sein: - finde alle Polylinien mit Breite xx - ändere Breite dieser Plolylinien auf Breite 0 - erzeuge einen Layer xx mit der Eigenschaft Linienstärke = xx - ändere die gefundenen Polylinien auf ebendiesen Layer Wiederhole das für alle anderen Linienbreiten So im Prinzip, brauchst Du nur noch an Deine konkreten Bedürfnisse anpassen. Mir fehlen für eine fertige Umsetzung zu viele Detailinformationen. Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 06. Mai. 2014 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für wuehlmaus
Aber ich Ist zwar nur aus einem größeren Programm "extrahiert", geht aber. (ohne Objektwahl und das ganze Benutzerfreundliche Zeug) Code: (setq w_list '(0 5 9 13 15 18 20 25 30 35 40 50 53 60 70 80 90 100 106 120 140 158 200 211 ) ) (vl-load-com) (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) (vlax-for obj blk (if (= (vla-get-ObjectName obj) "AcDbPolyline") (progn (setq w (* 100 (vla-get-ConstantWidth obj)) abst_list (mapcar '(lambda (wx) (abs (- w wx))) w_list) ) (vla-put-Thickness obj (nth (vl-position (apply 'min abst_list) abst_list) w_list) ) (vla-put-ConstantWidth obj 0.0) ) ) ) )
------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 06. Mai. 2014 12:40 <-- editieren / zitieren --> Unities abgeben: Nur für wuehlmaus
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 06. Mai. 2014 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für wuehlmaus
Naja, ich hab halt einige Polylinien mit verschiedenen Breiten gezeichnet, Funktion laufen lassen, nachgeschaut was draus geworden ist. Polylinien hatten die globale Breite 0 und jeweils die Linienstärke die der globalen Breite an nächsten kam. Hat also geklappt. Bei mir. Oder hab ich schon wieder irgendwas übersehen ? Wär ja nicht das erste mal, aber manchmal wachse ich über mich hinaus. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wuehlmaus Mitglied Landschaftsarchitekt
Beiträge: 350 Registriert: 03.12.2010 win 10, win7 64bit, ISDP 2016-2018(9)iRenderNXT, thearender, SketchUP, Adobe CS 5.5 DesignSuite
|
erstellt am: 06. Mai. 2014 13:21 <-- editieren / zitieren --> Unities abgeben:
@Andreas Ich würde es gerne mal testen - aber soweit meine lsp-Kenntnisse reichen wird es nicht klappen ... fehlt nicht zumindest der Defun Eintrag? oder so was in der Art ... Ich habe den Code mal genommen und versucht als lsp-Datei in AC einzuladen ... kommt Fehlerhafter Argumenttyp. Wäre aber supi wenn es klappt würde :-) Chris ------------------ www.Gestalten-mit-AutoCAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wuehlmaus Mitglied Landschaftsarchitekt
Beiträge: 350 Registriert: 03.12.2010 win 10, win7 64bit, ISDP 2016-2018(9)iRenderNXT, thearender, SketchUP, Adobe CS 5.5 DesignSuite
|
erstellt am: 06. Mai. 2014 13:33 <-- editieren / zitieren --> Unities abgeben:
@andreas ok - habe es jetzt hinbekommen nach deinem Eintrag den du danach geschrieben hast: Objekte gezeichnit. Breite von 1.0, 0.5, 0.15 ... zugewießen, den Code von dir kopiert und in die Befehlszeile kopiert, Enter und alles ist auf 0 ... leider nix auf 0.15, 0.5 oder 1.0 ... Wäre aber schön gewesen chris ------------------ www.Gestalten-mit-AutoCAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 06. Mai. 2014 14:01 <-- editieren / zitieren --> Unities abgeben: Nur für wuehlmaus
Ups, jetzt weis ich auch was cadffm gemeint hat. Code geschrieben. gespeichert. Thickness mit Linewight verwechselt. Korrigiert und nochmal getestet. Und dann den unveränderten, nicht korrigierten, gespeicherten Code hier reingestellt. Suuuuper Idee. König der Schussel. Ich glaube diese Woche bin ich nicht mehr einzuholen. Code: (defun c l-br2lw (/ ABST_LIST W WX W_LIST) (command "_undo" "_be") (setq w_list '(0 5 9 13 15 18 20 25 30 35 40 50 53 60 70 80 90 100 106 120 140 158 200 211 ) ) (vl-load-com) (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) (vlax-for obj blk (if (= (vla-get-ObjectName obj) "AcDbPolyline") (progn (setq w (* 100 (vla-get-ConstantWidth obj)) abst_list (mapcar '(lambda (wx) (abs (- w wx))) w_list) ) (vla-put-Lineweight obj (nth (vl-position (apply 'min abst_list) abst_list) w_list) ) (vla-put-ConstantWidth obj 0.0) ) ) ) ) (command "_undo" "_e") (princ) )
PS: der "Zungerausstrecker" ist ein Doppelpunkt und ein p, die Funktion heist dann pl-br2lw mit c: davor. ------------------ Geht nicht, gibts nicht
Gruß Andreas http://kraus-cad.de [Diese Nachricht wurde von Andreas Kraus am 06. Mai. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wuehlmaus Mitglied Landschaftsarchitekt
Beiträge: 350 Registriert: 03.12.2010 win 10, win7 64bit, ISDP 2016-2018(9)iRenderNXT, thearender, SketchUP, Adobe CS 5.5 DesignSuite
|
erstellt am: 06. Mai. 2014 14:49 <-- editieren / zitieren --> Unities abgeben:
supi!!!! War schon klar, dass Autocad die Zunge nicht kennt - manchmal eher die Peitsche :-) Vielen Dank, das hat uns schon super geholfen. chris PS: Wir sind ja auch Nachbarn und da muss man sich helfen (ich wohne direkt an der Grenze zu Mühlheim ...) ------------------ www.Gestalten-mit-AutoCAD.de
[Diese Nachricht wurde von wuehlmaus am 06. Mai. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |