Ejemplo n.º 1
0
        //-------------------------------------//
        public ty_Matrix3x2 getSliceTransformMatrix(int ObjectIndex, int LayerIndex)
        {
            ty_Matrix3x2 tmpA = new ty_Matrix3x2();
            ty_Matrix3x2 tmpB = new ty_Matrix3x2();

            if ((ObjectIndex < 0) || (ObjectIndex >= m_List.Count))
            {
                return(tmpA);
            }

            ty_part tmpPart = m_List[ObjectIndex];

            float a = (float)(tmpPart.rotation * 2 * Math.PI / 360.0);

            //- toDo : rotation und skalierung!
            tmpA.m00 = Math.Cos(a); tmpA.m10 = -Math.Sin(a);
            tmpA.m01 = Math.Sin(a); tmpA.m11 = Math.Cos(a);

            tmpA.m20 = 0;
            tmpA.m21 = 0;



            tmpB.m00 = 1; tmpB.m10 = 0;
            tmpB.m01 = 0; tmpB.m11 = 1;

            tmpB.m20 = (float)tmpPart.x;
            tmpB.m21 = (float)tmpPart.y;


            ty_Matrix3x2 resultMat = ty_Matrix3x2.MatrixMult(tmpB, tmpA);


            return(resultMat);
        }
Ejemplo n.º 2
0
        //------------------------------------------//
        public void setFileName(System.String filename)
        {
            m_filename = filename;
            m_filePath = System.IO.Path.GetDirectoryName(filename);
            if (m_filePath.Substring(m_filePath.Length - 1, 1) != "\\")
            {
                m_filePath = m_filePath + "\\";
            }


            m_eosJob = new clEosJobFileReader(filename);

            int partsID    = m_eosJob.getOpenTreeElement("Parts");
            int partsCount = m_eosJob.getElementChildCount(partsID);

            for (int i = 0; i < partsCount; i++)
            {
                int part     = m_eosJob.getElementChild(partsID, i);
                int property = m_eosJob.getSubElement(part, "FileName");

                if (property > 0)
                {
                    ty_part newPart = new ty_part();
                    newPart.x  = m_eosJob.getSubElementValueDouble(part, "x");
                    newPart.xs = m_eosJob.getSubElementValueDouble(part, "xs");

                    newPart.y  = m_eosJob.getSubElementValueDouble(part, "y");
                    newPart.ys = m_eosJob.getSubElementValueDouble(part, "ys");

                    newPart.z  = m_eosJob.getSubElementValueDouble(part, "z");
                    newPart.zs = m_eosJob.getSubElementValueDouble(part, "zs");

                    newPart.rotation = m_eosJob.getSubElementValueDouble(part, "Rotation");

                    newPart.filename   = m_eosJob.getSubElementValueString(part, "FileName");
                    newPart.ExpParName = m_eosJob.getSubElementValueString(part, "ExpParName").Trim();

                    newPart.isEnabled     = true;
                    newPart.layerthikness = 0;

                    if (String.Equals(newPart.ExpParName, "No_Exposure", StringComparison.OrdinalIgnoreCase))
                    {
                        newPart.isEnabled = false;
                    }
                    if (String.Equals(newPart.ExpParName, "_ExternalSupport", StringComparison.OrdinalIgnoreCase))
                    {
                        newPart.isEnabled = false;
                    }

                    addSlice(newPart);
                }
            }

            //- debug out File!
            //System.Diagnostics.Debug.WriteLine(m_eosJob.getXML());
        }
Ejemplo n.º 3
0
        //------------------------------------------//
        private void addSlice(ty_part partInfo)
        {
            if (partInfo.filename != "")
            {
                string tmp = "";

                try
                {
                    tmp = System.IO.Path.GetFileName(partInfo.filename);
                }
                catch (System.Exception e)
                {
                    m_error.addError("addSlice" + e.Message);
                    return;
                }

                string filename = "";


                if (System.IO.File.Exists(m_filePath + partInfo.filename))
                {
                    filename = m_filePath + partInfo.filename;
                }
                else if (System.IO.File.Exists(m_filePath + tmp))
                {
                    filename = m_filePath + tmp;
                }
                else if (System.IO.File.Exists(partInfo.filename))
                {
                    filename = partInfo.filename;
                }



                if (filename != "")
                {
                    //- open slice file
                    absSliceDataSource sliceClass = clHelper.OpenSliceFile(filename);

                    partInfo.sliceClass = sliceClass;

                    //int test = ((clSliFileReader)sliceClass).getLayerUpPosition(1);


                    if (m_max_Layers < sliceClass.getLayerCount())
                    {
                        m_max_Layers = sliceClass.getLayerCount();
                        m_partZMax   = partInfo; // Speichern des höchsten Bauteils für
                    }

                    partInfo.layerthikness = sliceClass.getLayerThickness();

                    //- diese klasse hat als Layer-Stärke die minimale Slise-Stärke aller Teile
                    m_layerthickness = Math.Min(m_layerthickness, partInfo.layerthikness);



                    m_List.Add(partInfo);
                }
                else
                {
                    m_error.addError("Can't find file: [" + partInfo.filename + "]");
                }
            }
        }