老师好:
我创建了一个 花瓶墩的实体,在给花瓶墩扣槽的时候,发现 扣槽部分 本来应该对称的弧形槽,却不对称了,我检查了 两个弧的垂直高度 是一样的,两个弧的半径也是一样的,所以 我感觉是 在构造面的时候 出现了问题,导致绘制出来的扣槽部分的 弧形半径本应该 一致 对称的,却不对称了!
扣槽部分的思路:绘制平面(线-弧-线-弧-线-线)后 向Y方向拉伸 。
绘制平面 可以 进行优化的,目前没有考虑优化,辛苦老师 !
附件是类文件,调用如下
UCD_HuaPing hp(8500, 3000 , 2000 , 500 , 2000 , 1500); //hp.SetArcHight(2000); //hp.SetKC_Info(750 , 450 , 150 , 2000 ,0); hp.SetArcRadius(6000); hp.SetKC_Info(750 , 450 , 150 , 6000 ,1); EditElementHandle eehP; int nn=hp.CreateHuaPing3D(eehP , basePt); if(nn==0) eehP.AddToModel();//else//WarningMessageBox(L"55555");
扣槽代码在 248行。
用到的相关数据在 Prepare_Data( basePt);//准备数据
这个接口中。
8473.UCD_HuaPing.zip
如果使用 hp.SetArcHight(2000); hp.SetKC_Info(750 , 450 , 150 , 2000 ,0); 这组数据 ,也就是 通过弧的高度 来控制扣槽,则没有问题!!!!
Bentley 二次开发小白一枚
建议您不要一下子画太多东西,一点一点画,画一步就生成看一下是否正确,碰到不正确的时候调试跟踪一下看看是哪一块计算逻辑不对。这种逻辑错误非函数API存在bug的情况一定得加强自身查找问题的能力呀。
扣槽部分的 创建示意图,按照图示 进行连接构成(XZ方向)面,然后向Y方向拉伸 称为实体,发现如果按照给定扣槽的半径,则2和4 不对称(经测量半径不同,4的半径与设定半径相同)但是等高,如果按照给定参数为 弧的高度,则2和4 对称(经测量半径相同)且等高。2这条弧的画法为1,2交点为起点,2和3交点为终点;4这条弧的画法为3和4的交点为起点,4和5的交点为终点。总之按照1-2-3-4-5-6的顺序 进行连接绘制平面。
我是感觉 是 在绘制弧线的时候 因为收尾相连、以及 逆时针 绘制弧线 的原则 造成的?
Answer Verified By: 平凡人生
您的问题解决了吗?我看您都打了Verify Answer了。
构造一个复杂链(ComplexChain)或复杂形(ComplexShape)时,各子元素的首尾相接问题确实很重要。可通过调用mdlElmdscr_assembleChains函数自动纠正各子元素的方向。