Sobald Träger und Bleche positioniert sind, können Sie sie mit Schrauben, Ankern und Schweißnähten verbinden.
Dieses Walkthrough gibt eine Einführung in die Grundlagen zum Verbinden von Modellelementen in einem Advance Steel-Modell mit Schrauben, Ankern und Schweißnähten über die API. Wechseln Sie wieder zum Hello World Walkthrough, um ein leeres Advance Steel-Add-On-Projekt zu erstellen, bis zu der Stelle, an der die Befehlsklasse erstellt wird. 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 CreateConnectors und fügen Sie den folgenden Code hinzu:
|
Code-Region: CreateConnectors-Befehlsklasse |
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 System.Collections.Generic;
namespace HelloWorld
{
public class CreateConnectors
{
[CommandMethodAttribute("TEST_GROUP", "CreateConnectors", "CreateConnectors",
CommandFlags.Modal | CommandFlags.UsePickSet | CommandFlags.Redraw)]
public void Create()
{
using (DocumentAccess da = new DocumentAccess(null, false))
{
da.Commit();
}
}
}
}
|
Bevor Verbindungen hinzugefügt werden können, müssen Bauteile vorhanden sein, die verbunden werden sollen. Beginnen Sie mit zwei kurzen Stützen. Fügen Sie eine Methode namens CreateStackedColumns() zur CreateConnectors-Klasse hinzu, um 2 gestapelte Stützen wie folgt hinzuzufügen:
|
Code-Region: Erstellen von gestapelten Stützen |
private void CreateStackedColumns(out StraightBeam bottomColumn, out StraightBeam topColumn)
{
//create 2 stacked columns
Point3d beamEnd = new Point3d(0, 0, 350);
Point3d beamStart = new Point3d(0, 0, 0);
bottomColumn = new StraightBeam("HEA DIN18800-1#@§@#HEA300", beamStart, beamEnd, Vector3d.kXAxis);
bottomColumn.WriteToDb();
beamEnd = new Point3d(0, 0, 700);
beamStart = new Point3d(0, 0, 350);
topColumn = new StraightBeam("HEA DIN18800-1#@§@#HEA200", beamStart, beamEnd, Vector3d.kXAxis);
topColumn.WriteToDb();
}
|
In dieser Lektion erstellen Sie ein Schraubenbild mit 8 Schrauben in einem rechteckigen Bereich, definiert durch diagonale Eckpunkte. Fügen Sie eine neue Methode namens ConnectColumnsWithBolts zur CreateConnectors-Klasse wie nachfolgend abgebildet hinzu.
|
Code-Region: Namensbereich Konstruktionstypen |
using Autodesk.AdvanceSteel.ConstructionTypes; |
|
Code-Region: Verbinden von Objekten mit Schrauben |
private void ConnectColumnsWithBolts(StraightBeam bottomColumn, StraightBeam topColumn)
{
//create a plate between the columns
Point3d plateOrig = topColumn.GetPointAtStart();
Plane platePlane = new Plane(plateOrig, Vector3d.kYAxis);
Plate myPlate = new Plate(platePlane, plateOrig, 100, 200);
myPlate.WriteToDb();
// create a standard rectangular pattern set of bolts
FinitRectScrewBoltPattern boltPattern = new FinitRectScrewBoltPattern(new Point3d(plateOrig.x - 25, plateOrig.y, plateOrig.z - 75),
new Point3d(plateOrig.x + 25, plateOrig.y, plateOrig.z + 75),
new Vector3d(1, 0, 0), new Vector3d(0, 0, 1));
boltPattern.WriteToDb();
boltPattern.Nx = 2;
boltPattern.Ny = 4; // create a 2x4 bolt pattern
// connect the objects
FilerObject[] objectsToConnect = { bottomColumn , topColumn, myPlate };
boltPattern.Connect(objectsToConnect, AtomicElement.eAssemblyLocation.kOnSite);
}
|
Der oben genannte Code erstellt zuerst ein Blech zwischen den vorhandenen Stützen. Dann wird das rechteckige Schraubenbild basierend auf der Position des Blechs definiert. Die Anzahl der für die lokale x- und y-Achse definierten Schrauben kann festgelegt werden, nachdem das Schraubenbild erstellt wurde. In diesem Fall wird ein 2x4-Schraubenbild erstellt.
Im letzten Schritt werden die Objekte im Schraubenbild verbunden. Eine HashSet< FilerObject>-Sammlung wird mit den Objekten gefüllt, die verbunden werden sollen, und dann von der Conntect()-Methode verwendet. In diesem Fall werden der Sammlung das Blech und die beiden Stützen hinzugefügt.
Beachten Sie, dass die Connect()-Methode einen Parameter verlangt, der den Baugruppenstandort angibt (vor Ort mit dem oben genannten Code). Die AtomicElement-Klasse, die für diesen Parameter verwendet wird, befindet sich in den Autodesk.AdvanceSteel.ConstructionTypes. Fügen Sie Folgendes mithilfe der Angabe am Anfang der Klassendatei hinzu:
Anker werden ähnlich wie Schrauben erstellt, mithilfe der AnchorPattern-Klasse. Fügen Sie eine neue Methode namens CreateBaseplateWithAnchors zur CreateConnectors-Klasse wie nachfolgend abgebildet hinzu.
|
Code-Region: Verwenden von Ankern |
private void CreateBaseplateWithAnchors(StraightBeam column, out Plate plate)
{
//create a baseplate
Point3d plateOrig = column.GetPointAtStart();
Plane platePlane = new Plane(plateOrig, Vector3d.kZAxis);
plate = new Plate(platePlane, plateOrig, 500, 500);
plate.WriteToDb();
// create a standard rectangular pattern set of bolts
AnchorPattern anchorPattern = new AnchorPattern(new Point3d(plateOrig.x - 150, plateOrig.y - 150, plateOrig.z),
new Point3d(plateOrig.x + 150, plateOrig.y + 150, plateOrig.z),
new Vector3d(1, 0, 0), new Vector3d(0, 1, 0));
anchorPattern.WriteToDb();
// set a valid combination of properties, like for the bolt
anchorPattern.Standard = "ANCHOR CANE";//"French cane anchor";
anchorPattern.Grade = "4.6";
anchorPattern.BoltAssembly = "2M";//"2N";
anchorPattern.ScrewDiameter = 16;
// create a 1x2 bolt pattern
anchorPattern.Nx = 1;
anchorPattern.Ny = 2;
// connect the objects
FilerObject[] objectsToConnect = { plate };
anchorPattern.Connect(objectsToConnect, AtomicElement.eAssemblyLocation.kOnSite);
}
|
Wie im oben genannten Code zu sehen ist, wird das AnchorPattern genauso definiert wie das FinitRectScrewBoltPattern: durch diagonal entgegengesetzte Eckpunkte. Statt der Verwendung eines Vorgabeankertyps ändert dieser Code die Schrauben, die für den Anker verwendet werden, in "franz. J-Anker". Die AnchorPattern-Eigenschaften müssen eine gültige Kombination von Eigenschaften enthalten. Gültige Sätze von Eigenschaften können im Werkzeug Anker in den Advance Steel Management Tools festgelegt werden (einer separaten Anwendung, die mit Advance Steel installiert wird).
Schweißnähte werden in Form von Schweißpunkten (mithilfe der WeldLevel-Klasse) oder Schweißnahtlinien (mithilfe der WeldStraight-Klasse) erstellt. Fügen Sie eine neue Methode namens WeldColumnToPlate zur CreateConnectors-Klasse wie nachfolgend abgebildet hinzu.
|
Code-Region: Verbinden von Objekten mit Schweißnähten |
private void WeldColumnToPlate(StraightBeam column, Plate plate)
{
// create a weld
WeldPoint weld = new WeldPoint(new Point3d(145, 0, 0), new Vector3d(1, 0, 0), new Vector3d(0, 1, 0));
weld.WriteToDb();
// connect the objects
FilerObject[] objectsToConnect = { column, plate };
weld.Connect(objectsToConnect, AtomicElement.eAssemblyLocation.kInShop);
// create second weld
weld = new WeldPoint(new Point3d(-145, 0, 0), new Vector3d(1, 0, 0), new Vector3d(0, 1, 0));
weld.WriteToDb();
weld.Connect(objectsToConnect, AtomicElement.eAssemblyLocation.kInShop);
}
|
Der oben abgebildete Code fügt zwei Schweißpunkte hinzu, die das untere Ende der Stütze mit dem bereitgestellten Blech verbinden.
Jetzt können Sie alle Methoden verwenden, die oben erstellt wurden, um Elemente zu erstellen und sie mit verschiedenen Verbindungstypen zu verbinden. Aktualisieren Sie die erste Create()-Methode, sodass der nachfolgende Code enthalten ist:
|
Code-Region: Verbinden von Objekten mit Schweißnähten |
public void Create()
{
using (DocumentAccess da = new DocumentAccess(null, false))
{
StraightBeam bottomColumn, topColumn;
CreateStackedColumns(out bottomColumn, out topColumn);
if (null != bottomColumn && null != topColumn)
{
ConnectColumnsWithBolts(bottomColumn, topColumn);
Plate basePlate;
CreateBaseplateWithAnchors(bottomColumn, out basePlate);
WeldColumnToPlate(bottomColumn, basePlate);
}
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.
Nach dem Ausführen des CreateConnectors-Befehls in Advance Steel und dem Zoomen sieht die Anzeige ungefähr so aus: