Support Forum

[Frage] Datensätze fest im Skript integrieren [Gelöst]

Schlagworte:
  • Daten
  • Norm
  • Varianten

Ich möchte ein Bauteil als PythonPart erstellen mit der Möglichkeit, die Geometrie nach fest definierten Normgrößen umzuschalten.
Zum Beispiel eine Sechskantschraube. Die gibt es in den Normgrößen M12 bis M36 und aus jeder Varianten ergeben sich die Abmessung. Die Schraubenlänge kann aber unabhängig von der Normgröße gewählt werden.

Anstatt für jede Normgröße ein eigenes PythonPart zu erstellen, wäre es besser, nur ein PythonPart zu haben, bei dem ich die Normgröße über eine Dropdownliste auswähle und nur noch Eingabefelder für die variablen Parameter einrichte.

Wie kann ich so einen Datensatz (Tabelle) fest im Skript integrieren?

Liebe Grüße
Felix

Gruß Felix
Allplan 2024-0-1

Anhänge (2)

Typ: image/png
92-mal heruntergeladen
Größe: 8,46 KiB
Typ: application/zip
942-mal heruntergeladen
Größe: 8,23 KiB

Lösung anzeigen Lösung verbergen

Habe jetzt meine Lösung gefunden:
Marcus hat das Dictionary bereits genannt, welches man in das Node ExecPythonScript schreiben kann. Man muss es halt dort nur in die "function_to_execute" integrieren. Ich habe das für Datensätze zu Stahlträgerprofilen gemacht. Im Pythonpart kann ich dann einfach des Profil wählen und der Träger ändert sich entsprechend. Will ich weitere Profile haben, muss ich nur das Dictionary und die Auswahlliste ergänzen. Die Einzelwerte gibt es bei bauforumstahl.de.

So kann das aussehen:

def function_to_execute(typ):
    # typ: h[mm], b[mm], tw[mm], tf[mm], r[mm]
    values = {
        "HEA_100": [96, 100, 5, 8, 12],
        "HEA_120": [114, 120, 5, 8, 12],
        "HEA_140": [133, 140, 5.5, 8.5, 12],
        "HEA_160": [152, 160, 6, 9, 15],
        "HEA_180": [171, 180, 6, 9.5, 15],
        "HEA_200": [190, 200, 6.5, 10, 18],
        "HEA_220": [210, 220, 7, 11, 18],
        "HEA_240": [230, 240, 7.5, 12, 21],
        "HEA_260": [250, 260, 7.5, 12.5, 24],
        "HEA_280": [270, 280, 8, 13, 24],
        "HEA_300": [290, 300, 8.5, 14, 27],
        "HEA_320": [310, 300, 9, 15.5, 27],
        "HEA_340": [330, 300, 9.5, 16.5, 27],
        "HEA_360": [350, 300, 10, 17.5, 27],
        "HEA_400": [390, 300, 11, 19, 27],
        "HEA_450": [440, 300, 11.5, 21, 27],
        "HEA_500": [490, 300, 12, 23, 27],
        "HEA_550": [540, 300, 12.5, 24, 27],
        "HEA_600": [590, 300, 13, 25, 27],
        "HEA_650": [640, 300, 13.5, 26, 27],
        "HEA_700": [690, 300, 14.5, 27, 27],
        "HEA_800": [790, 300, 15, 28, 30],
        "HEA_900": [890, 300, 16, 30, 30],
        "HEA_1000": [990, 300, 16.5, 31, 30],
        }
    return values[typ]

Danke Marcus und Xinling für die Hinweis und Danke auch an Nemo für deine Lösungsvorschläge.
Nr 1 habe ich versucht, war mir dann aber nicht praktisch/kompakt genug. Bin auch wieder an den CAV-Nodes gescheitert. Nr 2 und 3 kann ich leider nicht, aber andere können das sicher schon. Nr 4 wäre wirklich super.

Gruß Felix
Allplan 2024-0-1

Anhänge (3)

Typ: image/png
212-mal heruntergeladen
Größe: 185,89 KiB
Typ: text/plain
897-mal heruntergeladen
Größe: 1,67 KiB
Typ: video/mp4
879-mal heruntergeladen
Größe: 1,46 MiB
11 - 13 (13)

Hier noch des Skript auf dem Bild. Ist noch Allplan2021.

Gruß Felix
Allplan 2024-0-1

Anhänge (1)

Typ: application/zip
625-mal heruntergeladen
Größe: 2,31 KiB

Hallo Felix,

cool, sehr schöne und smarte Lösung!

Insofern ich nicht etwas übersehen habe (?), könntest du sogar noch den Node ListItem einsparen (siehe Screenshot).
(Der "String" Outputport der StringComboBox gibt direkt das gewählte Listenobjekt aus)

Liebe Grüße,
Mario

Anhänge (1)

Typ: image/jpeg
108-mal heruntergeladen
Größe: 76,56 KiB

Hallo Mario.

Du hast natürlich recht. Das habe ich bei all meinen Versuchen am Ende übersehen. So ist die Lösung noch kompakter. Danke.

Grüße
Felix

Gruß Felix
Allplan 2024-0-1

11 - 13 (13)