Walkthrough: Erstellen von Träger- und Blechbearbeitungen

Für Träger und Bleche stehen Bearbeitungen zur Verfügung.

Diese schrittweise Anleitung erläutert einige der verfügbaren Bearbeitungen für Träger und Bleche in Advance Steel. Zu diesen Bearbeitungen gehören Löcher, Öffnungen, Kürzungen, Fasen, Rundungen, Ausklinkungen, Schweißnahtvorbereitungen und vieles mehr. Die meisten Bearbeitungen sind sowohl für Träger als auch für Bleche verwendbar. Die Advance Steel API bietet jedoch dafür jeweils separate Klassen, z. B. ConnectionHoleBeam und ConnectionHolePlate. In dieser Übungslektion wird gezeigt, wie Sie einige dieser Bearbeitungen anwenden. Klassen für Bearbeitungen, die in dieser Lektion nicht vorgestellt werden, finden Sie im Namensbereich Autodesk.AdvanceSteel.Modelling.

In dieser Lektion wird davon ausgegangen, dass Ihnen ein neues Advance Steel-Add-On-Projekt mit einer Klassendatei vorliegt, durch die die IExtensionApplication-Schnittstelle implementiert wird.

Erstellen Sie eine neue Klasse mit dem Namen CreateFeatures, und fügen Sie den folgenden Code hinzu Code:

Code-Region: Befehlsklasse CreateFeatures

using Autodesk.AdvanceSteel.CADAccess;
using Autodesk.AdvanceSteel.DocumentManagement;
using Autodesk.AdvanceSteel.Runtime;
using Autodesk.AdvanceSteel.Geometry;
using Autodesk.AdvanceSteel.Modelling;
using Autodesk.AdvanceSteel.Profiles;
using Autodesk.AdvanceSteel.ConstructionTypes;
using Autodesk.AdvanceSteel.CADLink.Database;
using System.Collections.Generic;
using Autodesk.AdvanceSteel.Arrangement;
using Autodesk.AdvanceSteel.Contours;


namespace HelloWorld
{
    class CreateFeatures
    {
        [CommandMethodAttribute("TEST_GROUP", "CreateFeatures", "CreateFeatures",
                                                       CommandFlags.Modal | CommandFlags.UsePickSet | CommandFlags.Redraw)]
        public void Create()
        {
            using (DocumentAccess da = new DocumentAccess(null, false))
            {
            }
        }
    }
}

Beachten Sie, dass in diesem Beispiel alle in der Lektion zu Modellverbindungen verwendeten Namensbereiche sowie einige weitere verwendet werden. Autodesk.AdvanceSteel.Arrangement und Autodesk.AdvanceSteel.Contours sind Namensbereiche mit Klassen, die beim Umgang mit den Bearbeitungen verwendet werden.

Kürzung

Betrachten wir zunächst, wie ein Träger gekürzt wird. Kürzungen sind Schnitte mit einer unendlichen Ebene, die auf einen Träger oder ein Blech angewendet werden können. Sie können das Element jedoch auch verlängern, wenn sie außerhalb der Trägerlänge oder der Begrenzung des Blechs positioniert sind.

Bleche können mithilfe der Klasse PlateFeatShortening geschnitten werden. In diesem Beispiel wird die Klasse BeamShortening zum Schneiden von Trägern verwendet. Trägerkürzungen können durch beliebige Ebenen definiert werden, sofern diese nicht parallel oder nahezu parallel zum Trägerkörper verlaufen. In ähnlicher Weise können Blechkürzungen durch beliebige Ebenen definiert werden, die nicht parallel oder nahezu parallel zur Blechebene verlaufen.

Fügen Sie CreateFeatures wie unten gezeigt eine Methode namens ShortenBeam() hinzu.

Code-Region: Träger kürzen

private void ShortenBeam()
{
    // Have the user select a beam to shorten
    ObjectId objId = UserInteraction.SelectObject();
    Beam beam = DatabaseManager.Open(objId) as Beam;
    if (null != beam)
    {
        // first thing to do is add the feature to the parent
        // that sets owner and writes feature to db
        BeamShortening bs = new BeamShortening(Beam.eEnd.kEnd, 500);
        beam.AddFeature(bs);

        // once added to the beam, modify as needed 
        bs.AngleOnZ = 45;
    }
}

Die Methode UserInteraction.SelectObject() fordert den Benutzer zur Auswahl eines Trägers oder eines Blechs auf. Nach der Auswahl wird der Code fortgesetzt. In diesem Fall wird zunächst sichergestellt, dass das ausgewählte Objekt ein Träger ist.

Beim Erstellen einer neuen Bearbeitung ist es erforderlich, sie vor dem Festlegen der Eigenschaften dem übergeordneten Objekt hinzuzufügen, um unerwartetes Verhalten zu vermeiden. Durch Hinzufügen der Bearbeitung zum übergeordneten Objekt (in diesem Fall einem Träger) wird der Eigentümer der Bearbeitung festgelegt. Außerdem wird die Bearbeitung in die DWG-Datenbank geschrieben.

Im oben gezeigten Code wird der Träger um 500 mm ab dem Trägerende gekürzt. Durch Ändern des Winkels beim BeamShortening lassen sich Träger mit einem Winkel von 45 Grad schneiden.

Öffnungen

Trägern und Blechen können Öffnungen (Konturen) hinzugefügt werden. Öffnungen können rechteckig, rund oder durch ein geschlossenes Polygon definiert sein. Bei Trägern heißt die Klasse für Öffnungen BeamMultiContourNotch. Bei Blechen heißt sie PlateContourNotch.

Fügen Sie der Klasse CreateFeatures eine neue Methode namens CreateOpenings() hinzu und kopieren Sie den folgenden Code.

Code-Region: Erstellen einer Öffnung in einem Träger

private void CreateOpenings()
{
    // Select one or more beams to create openings
    List<ObjectId> objIds = UserInteraction.SelectObjects();
    foreach (ObjectId objId in objIds)
    {
        Beam beam = DatabaseManager.Open(objId) as Beam;
        if (null != beam)
        {
            // find the profile height of the beam to make a hole with a diameter half the height
            ProfileType profile = beam.GetProfType();
            double width = profile.GetGeometricalData(ProfileType.eCommonData.kProfHeight);
            double holeRadius = width / 4;
                    
            // create a circular opening in each selected beam along the beam's axis
            Vector3d vector = beam.GetPointAtStart() - beam.GetPointAtEnd();
            BeamMultiContourNotch multiNotch = new BeamMultiContourNotch(beam, Beam.eEnd.kStart, beam.GetPointAtStart(400), new Vector3d(0, 1, 0), vector, holeRadius);
            beam.AddFeature(multiNotch);
        }
    }
}

In diesem Beispiel kann der Benutzer mehrere Träger auswählen, anschließend wird eine kreisförmige Öffnung 400 mm vom Anfang jedes Trägers entfernt entlang dessen Achse hinzugefügt, wobei der Radius von der Höhe des Querschnitts abhängt. Es gibt verschiedene Konstruktoren für BeamMultiContourNotch, sodass außer kreisförmigen auch rechteckige oder polygonale Öffnungen erstellt werden können.

Löcher

Löcher sind Bearbeitungen, die Trägern (mit ConnectionHoleBeam) und Blechen (mit ConnectionHolePlate) hinzugefügt werden können. Löcher werden mithilfe eines Arrangers angeordnet, der ihre Position und Anzahl bestimmt. Eine eigene Lochdefinition wird zum Definieren der Bemaßungen der Löcher verwendet.

Fügen Sie der Klasse eine neue Methode namens CreateHolesInPlate() hinzu, und fügen Sie den folgenden Code ein:

Code-Region: Erstellen von Löchern in einem Blech

private void CreateHolesInPlate()
{
    // Create a plate and add holes to it
    Point3d plateOrig = Point3d.kOrigin; ;
    Plane platePlane = new Plane(plateOrig, Vector3d.kZAxis);

    Plate plate = new Plate(platePlane, plateOrig, 500, 500);
    plate.WriteToDb();

    ConnectionHolePlate connectionHole = new ConnectionHolePlate(plate, new Matrix3d());
    plate.AddFeature(connectionHole);

    // Create a rectangular arranger for the holes in a 3x2 pattern
    BoundedRectArranger arranger = new BoundedRectArranger(300, 200);
    arranger.Nx = 3;
    arranger.Ny = 2;
    connectionHole.Arranger = arranger;

    // Define the holes for the set
    connectionHole.Hole = new SlottedHole(20.0, 52.0, SlottedHole.eDirection.kXAxis);
            
}

Anstatt ein vom Benutzer ausgewähltes Blech für dieses Beispiel abzurufen, wird hier einfach ein neues Blech am Ursprung erstellt, anschließend werden 6 Langlöcher in 2x3-Anordnung hinzugefügt. Wie zuvor wird die neue Bearbeitung sofort dem übergeordneten Blech hinzugefügt und anschließend geändert. In diesem Beispiel wird ein BoundedRectArranger verwendet, es könnte jedoch auch ein CircleArranger oder RectangularArranger verwendet werden. Alternativen zu einem SlottedHole sind die Basisklassen Hole oder ExtendedHole.

Kombination aller Möglichkeiten

Jetzt müssen Sie die drei Methoden in der Methode Create() aufrufen. Bearbeiten Sie das ursprüngliche Methode Create(), sodass diese wie folgt aussieht:

Code-Region: Erstellen mehrerer Bearbeitungen

public void Create()
{
    using (DocumentAccess da = new DocumentAccess(null, false))
    {

       ShortenBeam();
       CreateOpenings();
       CreateHolesInPlate();
       da.Commit();
    }
}

Vor dem Ausführen dieses Befehls in Advance Steel müssen Sie die Richtlinien für erforderliche Datenattribute in der Datei AssemblyInfo.cs hinzufügen. Dies wird im Hello World Walkthrough gezeigt.

Bei Ausführung dieses Codes werden Sie zunächst aufgefordert, ein zu kürzendes Element (Träger oder eine Stütze) und anschließend einen oder mehrere weitere Träger auszuwählen, die mit Öffnungen versehen werden sollen (nach Abschluss der Auswahl die Eingabetaste drücken). Schließlich wird ein neues Blech am Ursprung erstellt und mit Löchern versehen.