[Вопрос] Datensätze fest im Skript integrieren [Решен]

Теги:
  • 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

Вложения (2)

Type: image/png
Загружено 92 раз
Size: 8,46 KiB
Type: application/zip
Загружено 974 раз
Size: 8,23 KiB

Show solution Hide solution

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

Вложения (3)

Type: image/png
Загружено 212 раз
Size: 185,89 KiB
Type: text/plain
Загружено 932 раз
Size: 1,67 KiB
Type: video/mp4
Загружено 917 раз
Size: 1,46 MiB
11 - 13 (13)

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

Gruß Felix
Allplan 2024-0-1

Вложения (1)

Type: application/zip
Загружено 659 раз
Size: 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

Вложения (1)

Type: image/jpeg
Загружено 108 раз
Size: 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)