예제 #1
0
파일: Bar.cs 프로젝트: PawelBee/Guanaco
        /***************************************************/

        // Convert bar information to CCX format.
        public override List <string> ToCCX()
        {
            Plane orLCS = new Plane(this._lcs);

            orLCS.Rotate(this._rotation, orLCS.ZAxis);

            List <string> CCXFormat = new List <string> {
                "*ORIENTATION,NAME=ORBAR" + this.CCXId()
            };

            CCXFormat.Add(GuanacoUtil.RhinoVectorToString(orLCS.XAxis) + "," + GuanacoUtil.RhinoVectorToString(orLCS.YAxis));
            CCXFormat.Add("*ELSET,ELSET=BAR" + this.CCXId());
            CCXFormat.AddRange(GuanacoUtil.IntsToCCX(this._elements.Select(e => e.Id.AsInteger), true));
            string[] profileInfo = this._profile.ToCCXFormat();
            string   barInfo     = profileInfo[0] + ",MATERIAL=" + this._material.Name + ",ELSET=BAR" + this.CCXId() + ",ORIENTATION=ORBAR" + this.CCXId() + ",";

            if (this._offset.X != 0)
            {
                barInfo += "OFFSET1=" + (this._offset.X / this._profile.GetHeight()).ToString(GuanacoUtil.Invariant) + ",";
            }
            if (this._offset.Y != 0)
            {
                barInfo += "OFFSET2=" + (this._offset.Y / this._profile.GetWidth()).ToString(GuanacoUtil.Invariant) + ",";
            }
            barInfo += profileInfo[1];

            CCXFormat.Add(barInfo);
            CCXFormat.Add(profileInfo[2]);
            CCXFormat.Add(GuanacoUtil.RhinoVectorToString(orLCS.XAxis));

            return(CCXFormat);
        }
예제 #2
0
파일: Panel.cs 프로젝트: PawelBee/Guanaco
        /***************************************************/

        // Convert panel information to CCX format.
        public override List <string> ToCCX()
        {
            string panelType;

            switch (this._feType)
            {
            case Element2D.Element2DType.Shell:
                panelType = "*SHELL";
                break;

            case Element2D.Element2DType.Membrane:
                panelType = "*MEMBRANE";
                break;

            default:
                throw new Exception(String.Format("{0} is not supported in the current implementation of Guanaco.", this._feType));
            }
            List <string> CCXFormat = new List <string> {
                "*ORIENTATION,NAME=ORPANEL" + this.CCXId()
            };

            CCXFormat.Add(GuanacoUtil.RhinoVectorToString(this._lcs.XAxis) + "," + GuanacoUtil.RhinoVectorToString(this._lcs.YAxis));
            CCXFormat.Add("*ELSET,ELSET=PANEL" + this.CCXId());
            CCXFormat.AddRange(GuanacoUtil.IntsToCCX(this._elements.Select(e => e.Id.AsInteger), true));
            CCXFormat.Add(panelType + " SECTION,MATERIAL=" + this._material.Name + ",ELSET=PANEL" + this.CCXId() + ",ORIENTATION=ORPANEL" + this.CCXId());
            CCXFormat.Add(this._thickness.ToString(GuanacoUtil.Invariant));
            return(CCXFormat);
        }
예제 #3
0
파일: Support.cs 프로젝트: PawelBee/Guanaco
        /***************************************************/

        // Convert support information to CCX format.
        public List <string> ToCCX()
        {
            List <string> CCXFormat = new List <string>();

            CCXFormat.Add("*NSET,NSET=Support_" + this._name);

            CCXFormat.AddRange(GuanacoUtil.IntsToCCX(this._nodes.Select(n => n.Id.AsInteger).ToList(), true));

            CCXFormat.Add("*BOUNDARY");

            foreach (int dof in this._supportType.DOFs)
            {
                CCXFormat.Add("Support_" + this._name + ", " + dof.ToString(GuanacoUtil.Invariant));
            }

            return(CCXFormat);
        }