43 lines
1.7 KiB
C#
43 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using Hi.Geom;
|
|
using Hi.Mech.Topo;
|
|
|
|
namespace Sample.Geom
|
|
{
|
|
/// <summary>
|
|
/// Demonstrates the creation and manipulation of geometric objects in HiAPI.
|
|
/// Shows how to create and transform various geometry types including boxes, cylindroids, and STL files.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// ### Source Code
|
|
/// [!code-csharp[SampleCode](~/../Hi.Sample/Geom/DemoBuildGeom.cs)]
|
|
/// </remarks>
|
|
public static class DemoBuildGeom
|
|
{
|
|
/// <summary>
|
|
/// Generates a collection of geometric objects for demonstration purposes.
|
|
/// Creates various geometry types including boxes, cylindroids, STL files, and transformed geometries.
|
|
/// </summary>
|
|
/// <returns>A list of geometries implementing the IGetStl interface</returns>
|
|
public static List<IGetStl> GenGeoms()
|
|
{
|
|
Box3d box = new Box3d(0, 0, -50, 70, 50, 0);
|
|
Cylindroid cylindroid = new Cylindroid()
|
|
{
|
|
PairZrs = new List<PairZr>([ new PairZr(0,12),new PairZr(20,12),
|
|
new PairZr(20,16),new PairZr(30,16)]),
|
|
LongitudeNum = 30
|
|
};
|
|
Stl stl = new Stl("geom.stl");
|
|
TransformationGeom transformationGeom = new TransformationGeom()
|
|
{
|
|
Transformer = new GeneralTransform(1,
|
|
new StaticRotation(new Vec3d(0, 0, 1), MathUtil.ToRad(15), new Vec3d(0, 0, 0)),
|
|
new StaticTranslation(new Vec3d(0, 0, 0))),
|
|
Geom = stl
|
|
};
|
|
return new List<IGetStl>([box, cylindroid, stl, transformationGeom]);
|
|
}
|
|
}
|
|
}
|