[求助]使用Arx 如何对AcadRegion进行旋转并取得体积?
public double GetArea(AcadEntity[] entities){
object[] regions = (object[])aDocument.ModelSpace.AddRegion(entities);
AcadRegion region = (AcadRegion)regions;
doublereArea = region.Area;
region.Delete();
return reArea;
AcadSolid sl = new AcadSolid();
}
上面函数为Arx下使用面域求面积,现在想把面域旋转,求得面积和体积,应该用什么类?AcadSolid?Solid?Solid3d?如果能够帮忙说下,非常感谢,并请给出旋转函数,包括参数和返回值,并求体积?如果用第一个,则没有Revolve方法,如果后面两中,则又牵扯到Arx和com的区别了.
已做出,该用法如下
调用函数
AcadCircle cl=op.CreateCircle(new double[] { 20, 20, 0 }, 10, "0", "ACAD_RED");
AcadEntity[] ens = new AcadEntity;
ens = (AcadEntity)cl;
double kk = op.GetVolume(ens, new double { 0, 0, 0 }, new double[] { 1, 0, 0 }, 2 * Math.PI);
被调用函数,体积计算
public double GetVolume(AcadEntity[] entities, double[] axisPoint, double[] axisDir, double Angle)
{
double dv = 0;
object[] regions = (object[])aDocument.ModelSpace.AddRegion(entities);
AcadRegion region = (AcadRegion)regions;
Acad3DSolid sl = aDocument.ModelSpace.AddRevolvedSolid(region, axisPoint, axisDir, Angle);
dv=sl.Volume;
region.Delete();
sl.Delete();
return dv;
}
页:
[1]