public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { switch (CSParam.ConstructParam) { case "+": return("(" + m_strValueName1 + " + " + m_strValueName2 + ")"); case "-": return("(" + m_strValueName1 + " - " + m_strValueName2 + ")"); case "×": return("(" + m_strValueName1 + " * " + m_strValueName2 + ")"); case "·": // 点乘 case "dot": return("dot(" + m_strValueName1 + " ," + m_strValueName2 + ")"); case "÷": return("(" + m_strValueName1 + "/" + m_strValueName2 + ")"); case "cross": // 叉乘 { if ((Value1.GetLinkType(0, true) == enLinkType.Float2 && Value2.GetLinkType(0, true) == enLinkType.Float2) || (Value1.GetLinkType(0, true) == enLinkType.Float3 && Value2.GetLinkType(0, true) == enLinkType.Float3) || (Value1.GetLinkType(0, true) == enLinkType.Float4 && Value2.GetLinkType(0, true) == enLinkType.Float4)) { return("cross(" + m_strValueName1 + ", " + m_strValueName2 + ")"); } return("(" + m_strValueName1 + " * " + m_strValueName2 + ")"); } } return(base.GCode_GetValueName(element, context)); }
protected override void CollectionErrorMsg() { if (ResultLink.HasLink) { if (!Value1.HasLink) { HasError = true; ErrorDescription += "未设置左参"; } if (!Value2.HasLink) { HasError = true; ErrorDescription += "未设置右参"; } var leftType = Value1.GetLinkType(0, true); var rightType = Value2.GetLinkType(0, true); if (GetAvilableType(leftType, rightType) == CodeGenerateSystem.Base.enLinkType.Unknow) { HasError = true; ErrorDescription += "类型" + leftType + "与类型" + rightType + "不能进行" + CSParam.ConstructParam + "运算"; } } }