Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[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
950-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
907-mal heruntergeladen
Größe: 1,67 KiB
Typ: video/mp4
888-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
635-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)