Beispielmakro: Stäbe zu Unterzügen
Vorab:
Es gibt Fälle, in denen man vorhandene Stäbe in Unterzüge umwandeln will - und zumindest zur Zeit liefern wir dafür keine fertige Funktion mit. Als Makro ist die Sache aber relativ einfach zu haben: Hier ein Makro, das genau diese Funktion erfüllt - zusammen mit ein paar Anmerkungen.
using System;
using DIE.Framework.ApplicationModell.Commands;
using DIE.Applications.Faltwerk.Objects.Beams;
using DIE.Applications.Faltwerk.Objects.BindingBeams;
using DIE.Framework.ObjectModell;
namespace MeineMakros
{
public class stab2unterzug : UserCommandBase
{
// Initialisierung des Makrobefehls.
public stab2unterzug() : base(@"stab2unterzug", @"übersetzt stäbe in unterzüge")
{
}
// Einsprungsfunktion des Makros
public override void Execute(IExecuteCommandContext context)
{
// alle balken holen (alternativ könnte man auch nur die
// holen, die momentan ausgewäht sind.)
IDocObjectCollection beams = context.TargetDocument.GetObjects( typeof(Beam));
// über alle balken iterieren.
foreach( IBeam beam in beams)
{
// für jeden balken einen neuen unterzug anlegen.
BindingBeam bindingBeam = new BindingBeam();
// all eigenschaften übertragen. die findet man in der
// referenz-dokumentation (baustatik.chm) für die Objekte unter
//
bindingBeam.ObjectName = beam.ObjectName;
bindingBeam.StartProfile = beam.StartProfile;
bindingBeam.EndProfile = beam.EndProfile;
bindingBeam.Material = beam.Material;
bindingBeam.DesignParameter = beam.DesignParameter;
bindingBeam.AdditionalProfileRotation = beam.AdditionalProfileRotation;
bindingBeam.Anfangsknoten = beam.Anfangsknoten;
bindingBeam.Endknoten = beam.Endknoten;
bindingBeam.RotLocalX = beam.RotLocalX;
bindingBeam.StartJoint = beam.StartJoint;
bindingBeam.EndJoint = beam.EndJoint;
// den nicht mehr benötigten Stab löschen
context.TargetDocument.RemoveObject( beam);
// den neuen unterzug ins dokument tun
context.TargetDocument.AddObject( bindingBeam);
}
}
}
}
Wie man sieht: Auch wenn eine bestimmte Funktion nicht von uns mitgeliefert wird - mit wenigen Zeilen kann man sowas leicht selbst nachrüsten. :-)
stab2unterzug.cs (1.91 KB)