Example #1
0
        private void dnButtonCheckBox_Click(object sender, EventArgs e)
        {
            CheckBox cb = (CheckBox)sender;

            foreach (CheckBox checkBox in dnButtons)
            {
                if (checkBox.Checked && cb.Name != checkBox.Name)
                {
                    checkBox.Checked = false;
                }
            }

            string     dn     = string.Concat(cb.Text.Where(c => !char.IsWhiteSpace(c)));
            PipeDnEnum pipeDn = (PipeDnEnum)Enum.Parse(typeof(PipeDnEnum), dn);

            PipeTypeEnum fr = PipeTypeEnum.Frem;

            foreach (var frb in fremReturButtons)
            {
                if (frb.Checked)
                {
                    fr = (PipeTypeEnum)Enum.Parse(typeof(PipeTypeEnum), frb.Text);
                }
            }

            ActivateLayer(fr, pipeDn);
        }
        public static double GetPipeKOd(Entity ent, PipeSeriesEnum pipeSeries)
        {
            PipeTypeEnum   pipeType   = GetPipeType(ent);
            PipeSystemEnum pipeSystem = GetPipeSystem(ent);

            switch (pipeType)
            {
            case PipeTypeEnum.Ukendt:
                return(0.0);

            case PipeTypeEnum.Twin:
                switch (pipeSystem)
                {
                case PipeSystemEnum.Ukendt:
                    return(0.0);

                case PipeSystemEnum.Stål:
                    return(GetTwinPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.Kobberflex:
                    return(GetCuTwinPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.AluPex:
                    return(GetAluPexTwinPipeKOd(ent, pipeSeries));

                default:
                    return(0.0);
                }

            case PipeTypeEnum.Frem:
            case PipeTypeEnum.Retur:
                switch (pipeSystem)
                {
                case PipeSystemEnum.Ukendt:
                    return(0.0);

                case PipeSystemEnum.Stål:
                    return(GetBondedPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.Kobberflex:
                    return(GetCuEnkeltPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.AluPex:
                    return(GetAluPexEnkeltPipeKOd(ent, pipeSeries));

                default:
                    return(0.0);
                }

            default:
                return(0.0);
            }
        }
        public static bool IsInSituBent(Entity ent)
        {
            PipeTypeEnum   type   = GetPipeType(ent);
            PipeSystemEnum system = GetPipeSystem(ent);

            //Flexrør er altid insitu bukkede
            if (
                system == PipeSystemEnum.Kobberflex ||
                system == PipeSystemEnum.AluPex
                )
            {
                return(true);
            }

            switch (type)
            {
            case PipeTypeEnum.Ukendt:
                throw new Exception(
                          $"IsInSituBent -> Entity handle {ent.Handle} has invalid layer!");

            case PipeTypeEnum.Twin:
                if (GetPipeDN(ent) < 65)
                {
                    return(true);
                }
                break;

            case PipeTypeEnum.Frem:
            case PipeTypeEnum.Retur:
                if (GetPipeDN(ent) < 100)
                {
                    return(true);
                }
                break;

            default:
                throw new Exception(
                          $"IsInSituBent -> Entity handle {ent.Handle} has invalid layer!");
            }
            return(false);
        }
        public static double GetPipeMinElasticRadius(Entity ent, bool considerInSituBending = true)
        {
            if (considerInSituBending && IsInSituBent(ent))
            {
                return(0);
            }

            Dictionary <int, double> cuS1Enkelt = new Dictionary <int, double>
            {
                { 15, 0.6 },
                { 18, 0.7 },
                { 22, 0.8 },
                { 28, 0.8 },
            };
            Dictionary <int, double> cuS2Enkelt = new Dictionary <int, double>
            {
                { 15, 0.8 },
                { 18, 0.8 },
                { 22, 0.8 },
                { 28, 1.0 },
            };
            Dictionary <int, double> cuS1Twin = new Dictionary <int, double>
            {
                { 22, 0.9 },
                { 28, 0.9 },
            };
            Dictionary <int, double> cuS2Twin = new Dictionary <int, double>
            {
                { 22, 1.1 },
                { 28, 1.1 },
            };
            Dictionary <int, double> aluPexS1Enkelt = new Dictionary <int, double>
            {
                { 20, 0.7 },
                { 25, 0.7 },
                { 32, 0.7 },
            };
            Dictionary <int, double> aluPexS2Enkelt = new Dictionary <int, double>
            {
                { 20, 0.7 },
                { 32, 0.9 },
            };
            Dictionary <int, double> aluPexS1Twin = new Dictionary <int, double>
            {
                { 20, 0.9 },
                { 25, 0.9 },
                { 32, 1.1 },
            };
            Dictionary <int, double> aluPexS2Twin = new Dictionary <int, double>
            {
                { 16, 0.9 },
                { 20, 1.0 },
                { 25, 1.0 },
                { 32, 1.5 },
            };
            Dictionary <int, double> steelRadii = new Dictionary <int, double>
            {
                { 20, 13.0 },
                { 25, 17.0 },
                { 32, 21.0 },
                { 40, 24.0 },
                { 50, 30.0 },
                { 65, 38.0 },
                { 80, 44.0 },
                { 100, 57.0 },
                { 125, 70.0 },
                { 150, 84.0 },
                { 200, 110.0 },
                { 250, 137.0 },
                { 300, 162.0 },
                { 350, 178.0 },
                { 400, 203.0 },
                { 999, 0.0 }
            };

            PipeTypeEnum   pipeType   = GetPipeType(ent);
            PipeSeriesEnum pipeSeries = GetPipeSeriesV2(ent);
            PipeSystemEnum pipeSystem = GetPipeSystem(ent);

            switch (pipeSystem)
            {
            case PipeSystemEnum.Ukendt:
                return(0);

            case PipeSystemEnum.Stål:
                return(steelRadii[GetPipeDN(ent)]);

            case PipeSystemEnum.Kobberflex:
                switch (pipeType)
                {
                case PipeTypeEnum.Ukendt:
                    return(0);

                case PipeTypeEnum.Twin:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(cuS1Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(cuS2Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                case PipeTypeEnum.Frem:
                case PipeTypeEnum.Retur:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(cuS1Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(cuS2Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                default:
                    return(0);
                }

            case PipeSystemEnum.AluPex:
                switch (pipeType)
                {
                case PipeTypeEnum.Ukendt:
                    return(0);

                case PipeTypeEnum.Twin:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(aluPexS1Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(aluPexS2Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                case PipeTypeEnum.Frem:
                case PipeTypeEnum.Retur:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(aluPexS1Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(aluPexS2Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                default:
                    return(0);
                }

            default:
                return(0);
            }
        }
Example #5
0
        internal static void ActivateLayer(PipeTypeEnum pipeType, PipeDnEnum pipeDn)
        {
            DocumentCollection docCol  = Application.DocumentManager;
            Database           localDb = docCol.MdiActiveDocument.Database;
            Document           doc     = docCol.MdiActiveDocument;
            Editor             editor  = docCol.MdiActiveDocument.Editor;

            string layerName = string.Concat(
                "FJV-", pipeType.ToString(), "-", pipeDn.ToString()).ToUpper();

            using (DocumentLock docLock = doc.LockDocument())
                using (Transaction tx = localDb.TransactionManager.StartTransaction())
                {
                    try
                    {
                        LayerTable lt = localDb.LayerTableId.Go <LayerTable>(tx);
                        Oid        ltId;
                        if (!lt.Has(layerName))
                        {
                            LinetypeTable ltt = localDb.LinetypeTableId.Go <LinetypeTable>(tx);

                            LayerTableRecord ltr = new LayerTableRecord();
                            ltr.Name = layerName;
                            switch (pipeType)
                            {
                            case PipeTypeEnum.Twin:
                                ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 6);
                                break;

                            case PipeTypeEnum.Frem:
                                ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 1);
                                break;

                            case PipeTypeEnum.Retur:
                                ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 5);
                                break;

                            default:
                                break;
                            }
                            Oid continuous = ltt["Continuous"];
                            ltr.LinetypeObjectId = continuous;
                            ltr.LineWeight       = LineWeight.ByLineWeightDefault;

                            //Make layertable writable
                            lt.CheckOrOpenForWrite();

                            //Add the new layer to layer table
                            ltId = lt.Add(ltr);
                            tx.AddNewlyCreatedDBObject(ltr, true);
                        }
                        else
                        {
                            ltId = lt[layerName];
                        }

                        localDb.Clayer = ltId;

                        tx.Commit();
                    }
                    catch (System.Exception e)
                    {
                        prdDbg(e.ToString() + "\n");
                        tx.Abort();
                        return;
                    }
                }

            prdDbg(layerName + "\n");
        }
Example #6
0
 public static ErrorNumberEnum StartRecord(int callHandle, PipeTypeEnum pipeType, string filePath)
 {
     return((ErrorNumberEnum)WrapperInterface.startRecord(callHandle, (int)pipeType, filePath));
 }