| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Im Fluss: Daten konsolidiert - Prozesse synchronisiert , ein Anwenderbericht
|
Autor
|
Thema: Objekteigenschaften auf Layer übertragen (5274 mal gelesen)
|
mellis Mitglied Bauzeichnerin
Beiträge: 6 Registriert: 07.08.2013 Rund um AutoCAD
|
erstellt am: 07. Aug. 2013 13:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Forianer, ist es im AutoCad möglich, dass man die Objekteigenschaften z.B einer Linie auf die Layereinstellung übertragen kann? Beispiel Einstellungen der Layer sind Farbe: weis, Linientyp: continous Einstellung der Linie im Modell Farbe: rot Linientyp: gestrichelt Linie soll rot gestichelt bleiben, aber definiert über die Layereigenschaften. Da bei meiner Zeichnung die Eigenschaften alle direkt auf das Objekt zugewiesen sind, und nicht auf die Layer, wäre es eine riesen Arbeit, alles manuell im Layereigenschaften-Manager unzustellen. Ich hoffe ihr versteht was ich meine und könnt mir helfen. Danke Gruß Melanie 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: 07. Aug. 2013 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
|
E-Boy Ehrenmitglied V.I.P. h.c. Elektroinstallateurmeister
Beiträge: 2731 Registriert: 23.06.2005 Autocad MEP 2019 E-Tools Win 10
|
erstellt am: 07. Aug. 2013 13:49 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Hi und Willkommen auf cad.de, im Layereigenschafenmanager muss das nur einmal eingestellt werden. Für die Gleichen Eigenschaften können auch mehrere Layer ausgewählt werden. ------------------ Gruß Stefan Nur Feiglinge speichern zwischen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mellis Mitglied Bauzeichnerin
Beiträge: 6 Registriert: 07.08.2013 Rund um AutoCAD
|
erstellt am: 07. Aug. 2013 14:03 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmals, habe das _setbylayer ausprobiert. Da überträgt es die Einstellung des Layers auf das Objekt (Linie, Text...). Ich möchte es aber genau andersrum. Die Einstellung des Objektes soll auf die Layereinstellung übertragen werden. Ja, jedes Objekt (Linie, Text..) liegt auf einem extra für ihn bestimmten Layer. Danke VG Melanie 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: 07. Aug. 2013 14:08 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
|
Entsorger01 Moderator Techniker
Beiträge: 3310 Registriert: 07.07.2006 ACAD 2021 Acrobat Prof. Creative Suite WIN10
|
erstellt am: 07. Aug. 2013 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Zitat: Original erstellt von mellis:
Da überträgt es die Einstellung des Layers auf das Objekt (Linie, Text...). Ich möchte es aber genau andersrum. Die Einstellung des Objektes soll auf die Layereinstellung übertragen werden.
Für mich ergibt sich der Sinn nicht so ganz. Danach haben die Layer die jeweiligen Eigenschaften der Objekte. Was aber nichts bringt, da die Objekte selbst ja nicht die Eigenschaft VONLAYER haben, sondern ihnen die Eigenschaften nach wie vor direkt zugeschrieben sind. Was ist der tiefere Sinn dieser Vorgehensweise? ------------------ Gruß Michi "Es ist schon alles gesagt, nur noch nicht von allen." (Karl Valentin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mellis Mitglied Bauzeichnerin
Beiträge: 6 Registriert: 07.08.2013 Rund um AutoCAD
|
erstellt am: 07. Aug. 2013 14:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, ja, so in etwa. 100 Linien auf 100 Layern. Die Linien sind alle unterschiedlich. Die Layer sind alle gleich Farbe weiß, Typ continous.... Hab ürsprünglich nen Objektkatalog aus nen anderen CAD Programm als dwg ausgegeben, wo sich dies ergeben hat. Ziel ist es, dass ich mit der dwg weiterzeichnen kann, sodass bei der Einstellung "von Layer" die Linien automatisch die richtige Farbe usw. haben, so wie es eigentlich der Sinn ist. Hab jetzt mal eine Datei angehängt (hoffe es klappt), damit es vielleicht ersichtlicher wird. VG Melanie Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
E-Boy Ehrenmitglied V.I.P. h.c. Elektroinstallateurmeister
Beiträge: 2731 Registriert: 23.06.2005 Autocad MEP 2019 E-Tools Win 10
|
erstellt am: 07. Aug. 2013 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Bei der Multilinie geht das schon los, ich würde mir einmal die Arbeit machen und gut ist. Vieleicht fällt ja den Programmieren hier was ein. ------------------ Gruß Stefan Nur Feiglinge speichern zwischen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heimkehrer Mitglied Vermessungsingenieur
Beiträge: 29 Registriert: 01.03.2012 Lenovo P50 AutoCAD Map 3D 2021, 2022
|
erstellt am: 07. Aug. 2013 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Hallo Melanie, ich kann gut nachvollziehen was Du brauchst, bekomme solche Zeichnungen oft von Dritten, die das mit irgendwas exportiert haben. Ich selber habe aber eher Interesse an einer Lösung als eine anbieten zu können. Von Cadmium gab es in einem anderen Beitrag ein Tool, das offensichtlich genau das Gegenteil macht. Vielleicht kann man das umprogrammieren???? LayerProps2All.VLX heißt das und wurde hier gepostet.
------------------ Viele Grüße Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rexxitall Mitglied Dipl. -Ing. Bau
Beiträge: 270 Registriert: 07.06.2013
|
erstellt am: 08. Aug. 2013 00:52 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Hm joar leidiges problem in der Tat. Solange die Layer in der Zeichnung noch halbwegs brauchbar sind ginge sowas als vba scriptlet Sub ad_EntityByLayer() Dim entity As AcadEntity On Error Resume Next For Each entity In thisdrawing.modelspace layertext = entity.LAYER entity.color = acBylayer entity.LineType = "BYLAYER" entity.lineweight = acLnWtByLayer
next End Sub Du wirst aber nicht mehr mit der Methode aus der Zeichnung herauskizteln als das was in den Layrinformatinen drinsteckt es mag aber allemal besser sein nur ein Rudel Laer umzudefinieren als jede Linie einzeln Alternativ bleibt nur die Methode Regeln zu definieren anhand die Layer zugeordnet werden prinzipeler code: For Each entity In thisdrawing.modelspace if entity.color = acred and entity.lineweight=acLnWt025 then entity.layer = "blah" ... usw then entity.layer= ... next Ne generelle routine zu bastln die alles erschlaegt fuehrt meist ins programmatische chaos - die meisten Zeichnungen werden nicht generiert .. besser kleine knackige routinen die das moeglichst komfortabel kleine Aufgaben erledigen im prinzip erst object auswaehlen und denn des: sub knackich application.update dim selectionsset as acdselectionset dim entity as acadentity on error resume next set selectionset =thisdrawing.pickfirstselectionset for each entity in selectionset if instr(lcase(entity.objectname)."text")> 0 then entity.layer="textlayername" next end sub pickfirstselectionsets sind uebelst allergisch wenn man denen objekte loescht die aktiv sind (Vollabsturz) bei sowas so fruh wie moeglich application update aufrufen Glaub der Bug ist bis heute nicht geflickt worden... (nebst diversen andren) Nachtrag bei der Zeichnung1 ist bereits alles auf "bylayer" gestellt problem ist: die layerdefinition ist so mist Abhilfe (ohne script): EINMAL so eine Layerdefinition OHNE die Namen zu aendern einstellen und als LEERE datai abspeichern Alle elemente in der originalzeichnung auswaehlen und in die LEERE datei reinkopieren et voila... geht na klar auch mir originalkoordinaten alternativ die layerdefinitionen per script auf was brauchbares anhand de layernamen einstellen die layerinfo koennt man aus nem textfile, ner Tabelle, etc auslesen...
Routinen gefunden in der Ukraine aber nicht angepasst oder getestet : google chrome hilft bei der uebersetzung ... (Ziemlich cool sogar) http://www.cad.dp.ua/stats/a_vba/ Die eine schribt dei Layerdefinition in ein Textfile - die andre restauriort dei Layer anhand dessen vielleicht ausreichend fuer dies problem Public Sub Layer_Save_Snap_shot() Dim objLayers As AcadLayers Dim objLayer As AcadLayer Dim strFile As String Dim intFile As Integer strFile = ShowSave() If Len(strFile) > 0 Then intFile = FreeFile Set objLayers = ThisDrawing.layers Open strFile For Output As intFile For Each objLayer In objLayers Print #intFile, objLayer.Name & ","; objLayer.color & ","; objLayer.Freeze & ","; objLayer.Lock & ","; objLayer.LAYERON & ","; objLayer.LineType Next objLayer End If Close intFile End Sub Public Sub Layer_Load_Snap_shot() Dim objLayers As AcadLayers Dim objLayer As AcadLayer Dim strLayerName As String Dim strFile As String Dim strActive As String Dim strTemp As String Dim strVal As String Dim intFile As Integer On Error GoTo Err_Control strFile = ShowOpen If Len(strFile) > 0 Then intFile = FreeFile Set objLayers = ThisDrawing.layers 'Find the active layer and save its name 'Then create a temp layer and set it active strActive = ThisDrawing.ActiveLayer.Name Set objLayer = objLayers.ADD("snaphold") ThisDrawing.ActiveLayer = objLayer Open strFile For Input As intFile Do Until EOF(intFile) Line Input #intFile, strVal strLayerName = ParseLayer(strVal) Set objLayer = objLayers(strLayerName) objLayer.color = CInt(ParseLayer(strTemp)) strTemp = "" objLayer.Freeze = CBool(ParseLayer(strTemp)) strTemp = "" objLayer.Lock = CBool(ParseLayer(strTemp)) strTemp = "" objLayer.LAYERON = CBool(ParseLayer(strTemp)) strTemp = "" objLayer.LineType = ParseLayer(strTemp) strTemp = "" Loop 'Now restore the original active layer 'And delete the temp layer. Set objLayer = objLayers(strActive) ThisDrawing.ActiveLayer = objLayer objLayers("snaphold").Delete Set objLayers = Nothing Set objLayer = Nothing Close intFile End If Set objLayers = Nothing ThisDrawing.REGEN acActiveViewport Exit_Here: Exit Sub Err_Control: MsgBox Err.Description Resume Exit_Here End Sub Public Function ParseLayer(ByVal strLayerInfo As String) As String Static strInitialVal As String Dim intPos As Integer If Len(strLayerInfo) > 0 Then strInitialVal = strLayerInfo intPos = InStr(strInitialVal, ",") If intPos = 0 Then ParseLayer = strInitialVal strInitialVal = "" Else ParseLayer = Left$(strInitialVal, intPos - 1) strInitialVal = MID$(strInitialVal, intPos + 1) End If End Function LG aus finnland ----------------- Wer es nicht versucht, hat schon verlorn Und bei 3 Typos gibts den vierten gratis ! [Diese Nachricht wurde von rexxitall am 08. Aug. 2013 editiert.] [Diese Nachricht wurde von rexxitall am 08. Aug. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Entsorger01 Moderator Techniker
Beiträge: 3310 Registriert: 07.07.2006 ACAD 2021 Acrobat Prof. Creative Suite WIN10
|
erstellt am: 08. Aug. 2013 07:16 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Zitat: Original erstellt von rexxitall:
Abhilfe (ohne script): EINMAL so eine Layerdefinition, OHNE die Namen zu ändern, einstellen und als LEERE Datei abspeichern. Alle Elemente in der Originalzeichnung auswählen und in die LEERE Datei reinkopieren.
@rexxitall: Das ist der einzige Abschnitt in deinem Aufsatz, der (als Ergänzung zu E-Boys letzter Antwort) hier Sinn ergibt. Alles davor ist am Thema vorbei, weil es nicht der Aufgabenstellung entspricht und ausserdem mit SETBYLAYER bewerkstelligt werden könnte. Alles danach ist überflüssig, weil man dafür die Definition der Layereigenschaften auch zuerst per "nem textfile, ner Tabelle, etc" vorgeben müsste - was aber auch nichts anderes wäre, als dies im Layereigenschaften-Manager zu tun und diese Zeichnung als Vorlage abzuspeichern. ------------------ Gruß Michi "Es ist schon alles gesagt, nur noch nicht von allen." (Karl Valentin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 08. Aug. 2013 23:08 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
"ist es im AutoCad möglich, dass man die Objekteigenschaften z.B einer Linie auf die Layereinstellung übertragen kann?" (DEFUN c:eig_ueber ( / obj lay l f )
(DEFUN gcr ( gcn obj / ) (CDR (ASSOC gcn obj)) ) (SETQ i 0) (IF (SETQ aws (SSGET)) (REPEAT (SSLENGTH aws) (SETQ ob (SSNAME aws i)) (SETQ obj (ENTGET ob)) (SETQ lay (gcr 8 obj)) (SETQ l (gcr 6 obj)) (SETQ f (gcr 62 obj)) (IF l (COMMAND "_-layer" "L" l lay "")) (IF f (COMMAND "_-layer" "FA" f lay "")) (COMMAND "_change" ob "" "EI" "FA" "VONLAYER" "") (COMMAND "_change" ob "" "EI" "LTY" "VONLAYER" "") (SETQ i (1+ i)) ) ) ) abspeichern und mit eig_ueber starten Ciao Georg ------------------ http://www.xxx-tausend.info Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mellis Mitglied Bauzeichnerin
Beiträge: 6 Registriert: 07.08.2013 Rund um AutoCAD
|
erstellt am: 09. Aug. 2013 08:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Georg, vielen Dank. Wenn du mir jetzt noch genau erklärst, wie ichs machen muss, dann funzt es vielleicht auch. Vor allem mit eig_ueber starten??? Bin leider nicht so der ***** VG Melanie
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Entsorger01 Moderator Techniker
Beiträge: 3310 Registriert: 07.07.2006 ACAD 2021 Acrobat Prof. Creative Suite WIN10
|
erstellt am: 09. Aug. 2013 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
|
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 09. Aug. 2013 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
die Datei ------------> auf Deinem Rechner speichern (Dateiname eig_ueber.lsp, ohne das ".txt"),"appload" in ACAD eintippen und die Datei laden. Jetzt hast Du einen neuen Befehl mit dem Namen "eig_ueber" z.V. In der Befehlszeile "eig_ueber" eintippen, Elemente auswählen, warten ... Ciao Georg
------------------ http://www.xxx-tausend.info Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mellis Mitglied Bauzeichnerin
Beiträge: 6 Registriert: 07.08.2013 Rund um AutoCAD
|
erstellt am: 09. Aug. 2013 08:36 <-- editieren / zitieren --> Unities abgeben:
|
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 09. Aug. 2013 08:52 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
(DEFUN c:eig_ueber ( / obj lay l f ls ) (DEFUN gcr ( gcn obj / ) (CDR (ASSOC gcn obj)) ) (SETQ i 0) (IF (SETQ aws (SSGET)) (REPEAT (SSLENGTH aws) (SETQ ob (SSNAME aws i)) (SETQ obj (ENTGET ob)) (SETQ lay (gcr 8 obj)) (SETQ l (gcr 6 obj)) (SETQ f (gcr 62 obj)) (SETQ ls (gcr 370 obj)) (IF l (COMMAND "_-layer" "L" l lay "")) (IF f (COMMAND "_-layer" "FA" f lay "")) (IF ls (COMMAND "_-layer" "LS" ls lay "")) (COMMAND "_change" ob "" "EI" "FA" "VONLAYER" "") (COMMAND "_change" ob "" "EI" "LTY" "VONLAYER" "") (COMMAND "_change" ob "" "EI" "LS" "VONLAYER" "") (SETQ i (1+ i)) ) ) ) ------------------ http://www.xxx-tausend.info Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mellis Mitglied Bauzeichnerin
Beiträge: 6 Registriert: 07.08.2013 Rund um AutoCAD
|
erstellt am: 09. Aug. 2013 09:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Georg, ist es möglich, dass bei der Farbumsetzung die Farben nicht nach ACI (Farbindex) sondern wie vordefiniert als RGB Mischverhältnis übernommen werden??? Und die Strichstärken bräuchte ich auch noch bitte. Danke VG Melanie Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 09. Aug. 2013 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
|
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner, keine Adminrecht
|
erstellt am: 14. Okt. 2021 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
hallo, würde gern das LSP schnippsel verwenden, leider funktioniert die Übernahme der Linienstärke bei mir nicht. Es wird eine Linienstärke von 2,1mm gesetzt, woher das kommt weis ich nicht. Kann mir bitte jemand einen Rat geben. (DEFUN c:eig_ueber ( / obj lay l f ls ) (DEFUN gcr ( gcn obj / ) (CDR (ASSOC gcn obj)) ) (SETQ i 0) (IF (SETQ aws (SSGET)) (REPEAT (SSLENGTH aws) (SETQ ob (SSNAME aws i)) (SETQ obj (ENTGET ob)) (SETQ lay (gcr 8 obj)) (SETQ l (gcr 6 obj)) (SETQ f (gcr 62 obj)) (SETQ ls (gcr 370 obj)) (IF l (COMMAND "_-layer" "L" l lay "")) (IF f (COMMAND "_-layer" "FA" f lay "")) (IF ls (COMMAND "_-layer" "LS" ls lay "")) (COMMAND "_change" ob "" "EI" "FA" "VONLAYER" "") (COMMAND "_change" ob "" "EI" "LTY" "VONLAYER" "") (COMMAND "_change" ob "" "EI" "LS" "VONLAYER" "") (SETQ i (1+ i)) ) ) ) ------------------ Gruß vom Bauvermesser; 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: 14. Okt. 2021 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Code: (DEFUN c:SetLayPropByObj (/ gcr i aws obj lay l f ls) (DEFUN gcr ( gcn obj /) (CDR (ASSOC gcn obj)) ) ;_ end of DEFUN (SETQ i 0) (IF (SETQ aws (SSGET)) (REPEAT (SSLENGTH aws) (SETQ ob (SSNAME aws i)) (SETQ obj (ENTGET ob)) (SETQ lay (gcr 8 obj)) (SETQ l (gcr 6 obj)) (SETQ f (gcr 62 obj)) (SETQ ls (gcr 370 obj)) (COMMAND "_.-layer") (IF f (COMMAND "_co" f lay)) (IF l (COMMAND "_lt" l lay)) (IF ls (COMMAND "_lw" (* ls 0.01) lay)) (COMMAND "") (COMMAND "_.change" ob "" "_p" "_co" "_bylayer" "_lt" "_bylayer" "_lw" "_bylayer" "") (SETQ i (1+ i)) ) ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner, keine Adminrecht
|
erstellt am: 14. Okt. 2021 21:40 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
|
Lupinie Mitglied
Beiträge: 53 Registriert: 27.08.2015 Autocad 2023, Civil 3d 2023.2.1, Win 11 Pro 64bit i9-13900, 32GB RAM, RTX A2000 12GB
|
erstellt am: 17. Apr. 2023 16:07 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Apr. 2023 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
Ich beantworte einfach mal nur die Frage. Dieser einfache Code ist nur für die ACI gedacht, bzw. könnte auch für die gleichzeitige konvertierung TC->ACI genutzt werden. RGB/HSL/ACB möglich? Natürlich könnte man das auch erweitern für auf TrueColor und Farbbücher. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lupinie Mitglied
Beiträge: 53 Registriert: 27.08.2015 Autocad 2023, Civil 3d 2023.2.1, Win 11 Pro 64bit i9-13900, 32GB RAM, RTX A2000 12GB
|
erstellt am: 17. Apr. 2023 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Apr. 2023 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für mellis
>>"was ist ACI"AutoCADColorIndex, die Indexfarben von AutoCAD (Farbe1-255) >>"und was TC?" TrueColor, damit sind dann die Truecolorfarbwert 0,0,0 bis 255,255,255 gemeint, welche in RotGrünBlau Anteilen angegeben werden (bzw. eingestellt werden können die auch über HLS, Hue/Farbton, Luminance/Helligkeit und Saturation/Sättigung) >>"Woher kommt der Farbunterschied bei der Übernahme?" Nun, da du bereits selbst von "RGB" gesprochen hast, nehmen wir mal an deine Objekte haben Truecolorwerte (oder Farbbuch-Namen) zugeordnet bekommen, aber auch in diesem Fall haben die Objekte einen ACI-Wert - im groben ist das die Farbe welche deiner Truecolor-Farbe am nächsten kommt. Diese einfache Funktion oben schaut nur nach der ACI-Farbe des Objektes, falls deine Truecolorfarbe aber nicht genau dieser ACI-Farbe entspricht, dann unterscheidet sich die Farbe vorher und nach natürlich. (Dem neu angelegte Layer wird ja nur der ACI-Wert des Objektes zugeordnet, deine TC-Farbe wird komplett ignoriert). >>"Hast einen Tipp für Unterlagen zum Reinfuchsen?" ? In das Objektmodell von DXF/DWG oder einer Programmierschnittstelle, oder alles auf einmal? Sorry nein, bei Null angefangen - da fällt mir keine "beste Quelle" ein. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |