需求描述:要求拉筋的两端末端弯钩要求不一样
RebarCurve TieRebarMaker::MakeOneTieRebar(DPoint3d ptStart, DPoint3d ptEnd, RebarEndTypes const& endTypes, const CVector3D& endNormal,DgnModelRefP modelRef) { RebarCurve rebar; RebarVertexP vex; vex = &rebar.PopVertices().NewElement(); vex->SetIP(ptStart); vex->SetType(RebarVertex::kStart); vex = &rebar.PopVertices().NewElement(); vex->SetIP(ptEnd); vex->SetType(RebarVertex::kEnd); double bendRadius = RebarCode::GetPinRadius(m_tieRebarSize, modelRef, false); //乘以了30 //double bendLen = RebarCode::GetBendLength(m_tieRebarSize, endTypes.beg, modelRef); //乘以了100 double dia = RebarCode::GetBarDiameter(m_tieRebarSize, modelRef); double bendLen = dia * 10; rebar.EvaluateEndTypes(endTypes, bendRadius, bendLen, &endNormal); return rebar; }
请问以上代码应该怎么修改?
补充说明:弯钩样式不一样指弯曲长度不一样和弯曲角度不一样
已经将您的问题转给了PS开发技术支持工程师,请耐心等待答复。
弯曲角度可以通过
endType.SetType(RebarEndType::kCog); 设置。弯曲长度是在rebar.EvaluateEndTypes(endTypes, bendRadius, bendLen, &endNormal);计算的。当前这个函数只支持等长度,所以如果需要不同长度可以:A 自己计算整个rebar curveB 通过EvaluateEndTypes计算rebar curve后取出其中的RebarVertex修改
endType.SetType(RebarEndType::kCog);
rebar.EvaluateEndTypes(endTypes, bendRadius, bendLen, &endNormal);
我想设置的弯曲角度是100度,在枚举中没有找到,请问我要怎么自定义弯曲角度呢?
我不是PS编程专家,不过,根据您和权老师的讨论,我在想是否可以将Type设置成kCustom,然后按照权老师的方法自行修改rebar curve的RebarVertex来满足你的自定义角度?