我想画出实体截面的一半然后生成一半截面然后想通过mirror3d的方法画出一个整截面然后用ExtrudeClosedPlanarCurve生成实体,可是镜像没有实现?不知道问题出在哪?下面是相关代码。
Application app = Utilities.ComApp; LineElement oLine;
Point3d[] pntArray_out = new Point3d[10]; pntArray_out[0] = app.Point3dFromXYZ(dx, dy, dz); pntArray_out[1] = app.Point3dFromXYZ(dx, dy - (tBO1 + tBO2 + tBO3), dz); pntArray_out[2] = app.Point3dFromXYZ(dx, dy - (tBO1 + tBO2 + tBO3), dz - tHO1); pntArray_out[3] = app.Point3dFromXYZ(dx, dy - (tBO3 + tBO2), dz - (tHO1 + tHO2)); pntArray_out[4] = app.Point3dFromXYZ(dx, dy - (tBO3), dz - (tHO1 + tHO2 + tHO3)); pntArray_out[5] = app.Point3dFromXYZ(dx, dy, dz - (tHO1 + tHO2 + tHO3));
Poin
t3d p = app.Point3dFromXYZ(dx + 100, dy, dz);oLine = app.CreateLineElement1(null, ref pntArray_out);oLine.Color = 0; oLine.LineWeight = 1;oLine.Mirror3d(ref pntArray_out[0], p, ref pntArray_out[5]);
Point3d[] pntArray_inl = new Point3d[10];pntArray_inl[0] = app.Point3dFromXYZ(dx, dy - tBI2_1, dz - tHI1 - tHI2);pntArray_inl[1] = app.Point3dFromXYZ(dx, dy - tBI1_1 - tBI2_1, dz - tHI1);pntArray_inl[2] = app.Point3dFromXYZ(dx, dy - tBI1_2 - tBI2_1, dz - tHI1);pntArray_inl[3] = app.Point3dFromXYZ(dx, dy - tBI1 - tBI2_1, dz - tHI1 - tHI2);pntArray_inl[4] = app.Point3dFromXYZ(dx, dy - tBI1 - tBI2_1, dz - tHI1 - tHI2 - tHI3);pntArray_inl[5] = app.Point3dFromXYZ(dx, dy - tBI3 - tBI2_1, dz - tHI1 - tHI2 - tHI3 - tHI4);pntArray_inl[6] = app.Point3dFromXYZ(dx, dy - tBI3_2 - tBI2_1, dz - tHI1 - tHI2 - tHI3 - tHI4 - tHI5);pntArray_inl[7] = app.Point3dFromXYZ(dx, dy - tBI3_1 - tBI2_1, dz - tHI1 - tHI2 - tHI3 - tHI4 - tHI5);pntArray_inl[8] = app.Point3dFromXYZ(dx, dy - tBI2_1, dz - tHI1 - tHI2 - tHI3 - tHI4);pntArray_inl[9] = pntArray_inl[0];LineElement inLinel;inLinel = app.CreateLineElement1(null, ref pntArray_inl);inLinel.Color = 0; inLinel.LineWeight = 1;
inLinel.Mirror3d(ref pntArray_out[0], p, ref pntArray_out[5]);
app.ActiveModelReference.AddElement(app.SmartSolid.ExtrudeClosedPlanarCurve(inLinel, dlong, 0));
app.ActiveModelReference.AddElement(app.SmartSolid.ExtrudeClosedPlanarCurve(oLine, dlong, 0));
1. 可否提供具体参数值(dx, dy, dz等)使得您的代码可直接运行? 2. ExtrudeClosedPlanarCurve方法的第一个参数是一个平面的封闭的元素,而我看您给的是LineElement,它不是封闭的,需要改用ShapeElement。
请参考如下例子:
Application app = Utilities.ComApp; Point3d[] pntArray = new Point3d[6]; pntArray[0] = app.Point3dFromXY(0, -6); pntArray[1] = app.Point3dFromXY(0, -2); pntArray[2] = app.Point3dFromXY(2, -2); pntArray[3] = app.Point3dFromXY(2, -4); pntArray[4] = app.Point3dFromXY(4, -4); pntArray[5] = app.Point3dFromXY(4, -6); ShapeElement oShape = app.CreateShapeElement1(null, ref pntArray); SmartSolidElement oSolid = app.SmartSolid.ExtrudeClosedPlanarCurve(oShape, 5, 5, true); app.ActiveModelReference.AddElement(oSolid);
它能正确地生成一个Shape的拉伸体如下:
Answer Verified By: JFeng