Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Element-Darstellung über rgb-Wert ändern - iLogic

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
Autodesk Inventor: Blechkonstruktion, ein Seminar am 03.02.2025
Autor Thema:  Element-Darstellung über rgb-Wert ändern - iLogic (527 / mal gelesen)
SimonP
Mitglied


Sehen Sie sich das Profil von SimonP an!   Senden Sie eine Private Message an SimonP  Schreiben Sie einen Gästebucheintrag für SimonP

Beiträge: 6
Registriert: 22.02.2024

erstellt am: 22. Feb. 2024 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

gibt es die Möglichkeit einem Bauteil eine Farbe über rgb-Werte zu zuweisen?
So etwas wie:

Code:
Component.Color("Test") = "Rot"

Nur mit direkter Eingabe von rgb-Werten..

Ich möchte gerne eine ilogic Regel haben, die den rgb Wert zuweist.

z.B.Component.Color("Test") = "Rot" (r=200 ,g=200, b=200)

ist sowas überhaupt möglich?

Grüße
Simon

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2630
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 22. Feb. 2024 21:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Moin

Willkommen im Forum 

Geht, aber die Darstellung (Farben in den Sinne gibt es schon länger nicht mehr) muss in der Baugruppe vorhanden sein. Ansonsten musst du sie neu erstellen und dann zuweisen. Die zugewiesene Darstellung gilt für das Exemplar in der Baugruppe. Im Bauteil ändert sich die Darstellung nicht.
Keine Ahnung wie du das implementiert hast oder willst, aber hier mal eine kleine Demo. Den Part Eingabeprüfung und Validierung sollte man weiter ausbauen.

Code:

If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
MsgBox("Funktion nur in Baugruppen verfügbar.", MsgBoxStyle.Critical, "iLogic RGB")
Exit Sub
End If

Dim oAssDoc As AssemblyDocument = ThisDoc.Document
Dim oAssets As Assets = oAssDoc.Assets
Dim oAppearance As Asset

Dim sRGB As String = InputBox("RGB-Werte", "iLogicRGB", "RGB-Werte mit Bindestrich getrennt")
If sRGB = String.Empty Then Exit Sub ' User canceled Input

Dim aRGB As String() = sRGB.Split("-")

Dim iR As Integer = CInt(aRGB(0))
Dim iG As Integer = CInt(aRGB(1))
Dim iB As Integer = CInt(aRGB(2))

If Not 0 <= iR <= 255 Then
Logger.Debug("iR out of range")
Exit Sub
End If

If Not 0 <= iG <= 255 Then
Logger.Debug("iG out of range")
Exit Sub
End If

If Not 0 <= iB <= 255 Then
Logger.Debug("iB out of range")
Exit Sub
End If


Try
oAppearance = oAssets.Item(sRGB)
Catch
oAppearance = oAssets.Add(kAssetTypeAppearance, "Generic", sRGB, sRGB)

Dim oTransObjs As TransientObjects = ThisApplication.TransientObjects
Dim oColor As ColorAssetValue = oAppearance.Item("generic_diffuse")
oColor.Value = oTransObjs.CreateColor(iR, iG, iB)
End Try

Dim oCompOcc As ComponentOccurrence = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kAssemblyOccurrenceFilter, "Komponente auswählen")

Component.Color(oCompOcc.Name )=oAppearance.DisplayName


------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

SimonP
Mitglied


Sehen Sie sich das Profil von SimonP an!   Senden Sie eine Private Message an SimonP  Schreiben Sie einen Gästebucheintrag für SimonP

Beiträge: 6
Registriert: 22.02.2024

erstellt am: 23. Feb. 2024 08:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ralf 

Vielen Dank für diesen Code, ist fast das was ich brauche super  

Nur bräuchte ich keine Box zur RGB-Eingabe, sondern sollte er einen Textparameter verwenden, wo ich diese RGB-Werte hineinschreibe und nicht zur Auswahl welche Bauteile ich möchte, sondern ich würde das über eine Regel machen, welche Bauteile aktiviert sind und diese soll er dann mit dieser RGB-Darstellung übernehmen.

Kannst du mir da noch behilflich sein?  

Danke!

MFG
Simon

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2630
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 23. Feb. 2024 13:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Moin

Code:

If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
    MsgBox("Funktion nur in Baugruppen verfügbar.", MsgBoxStyle.Critical, "iLogic RGB")
    Exit Sub
End If

Dim oAssDoc As AssemblyDocument = ThisDoc.Document
Dim oAssets As Assets = oAssDoc.Assets
Dim oAppearance As Asset

Dim sRGB As String = Param_RGB
If sRGB = String.Empty Then Exit Sub

Dim aRGB As String() = sRGB.Split("-")

Dim iR As Integer = CInt(aRGB(0))
Dim iG As Integer = CInt(aRGB(1))
Dim iB As Integer = CInt(aRGB(2))

If Not 0 <= iR <= 255 Then
    Logger.Debug("iR out of range")
    Exit Sub
End If

If Not 0 <= iG <= 255 Then
    Logger.Debug("iG out of range")
    Exit Sub
End If

If Not 0 <= iB <= 255 Then
    Logger.Debug("iB out of range")
    Exit Sub
End If


Try
    oAppearance = oAssets.Item(sRGB)
Catch
    oAppearance = oAssets.Add(kAssetTypeAppearance, "Generic", sRGB, sRGB)

    Dim oTransObjs As TransientObjects = ThisApplication.TransientObjects
    Dim oColor As ColorAssetValue = oAppearance.Item("generic_diffuse")
    oColor.Value = oTransObjs.CreateColor(iR, iG, iB)
End Try

Dim oCompOcc As ComponentOccurrence
For Each oCompOcc In oAssDoc.ComponentDefinition.Occurrences
    If oCompOcc.Suppressed = False Then
        Component.Color(oCompOcc.Name) = oAppearance.DisplayName
    End If
Next


------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz