Пример #1
0
        private static bool Correction(_AcDb.Entity ent, string suffix, bool isContinuous)
        {
            if (ent.Layer.EndsWith(suffix, StringComparison.OrdinalIgnoreCase))
            {
                return(false);                                                                // already handled
            }
            var ltr = (_AcDb.LayerTableRecord)_Tr.GetObject(ent.LayerId, _AcDb.OpenMode.ForRead);
            var li  = new LayerInfo(ltr, _Tr);

            if (isContinuous)
            {
                li.NewLineType = "Continuous";
            }
            li.NewLayer = ent.Layer + suffix;
            li.CreateNewLayer();
            li.UnlockOldLayer();
            ent.UpgradeOpen();
            ent.Layer = li.NewLayer;



            //const string prefix = "Autodesk.AutoCAD.DatabaseServices.";
            //string typeString = ent.GetType().ToString();
            //if (typeString.Contains(prefix)) typeString = typeString.Substring(prefix.Length);
            //log.Info("\nEntity " + ent.ObjectId.ToString() + " of type " + typeString + " found on layer " +
            //                    ent.Layer + " with colour " + ent.Color.ToString());



            return(true);
        }
Пример #2
0
        private static bool CorrectionRest(_AcDb.Entity ent)
        {
            string suffix = "";

            var ltr = (_AcDb.LayerTableRecord)_Tr.GetObject(ent.LayerId, _AcDb.OpenMode.ForRead);
            var li  = new LayerInfo(ltr, _Tr);

            if (IsActuallyContintuous(ent, li))
            {
                suffix         = "_L";
                li.NewLineType = "Continuous";
            }
            else
            {
                suffix         = "_V";
                li.NewLineType = "Verdeckt";
            }

            if (ent.Layer.EndsWith(suffix, StringComparison.OrdinalIgnoreCase))
            {
                return(false);                                                                // already handled
            }
            li.NewLayer = ent.Layer + suffix;
            li.CreateNewLayer();

            li.UnlockOldLayer();
            ent.UpgradeOpen();
            ent.Layer      = li.NewLayer;
            ent.LinetypeId = LayerInfo.GetLinetypeFromName("ByLayer", _Tr, _Db);

            return(true);
        }