Exemplo n.º 1
1
        public static void SelectSample(Boolean isAllEnt, out String layerName, out Autodesk.AutoCAD.Colors.Color color, out String lineType)
        {
            layerName = null;
            color = new Autodesk.AutoCAD.Colors.Color();
            lineType = null;
            try
            {
                Autodesk.AutoCAD.EditorInput.PromptEntityOptions edOpt = new Autodesk.AutoCAD.EditorInput.PromptEntityOptions("\nВыберите объект аналог: ");
                if (isAllEnt)
                {
                    edOpt.SetRejectMessage("Объект не Arc,Circle,Line,Polyline.\n");
                    edOpt.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Circle), false);
                    edOpt.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Line), false);
                    edOpt.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Polyline), false);
                    edOpt.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Arc), false);
                }
                else
                {
                    edOpt.SetRejectMessage("Объект не полилиния.\n");
                    edOpt.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Polyline), false);
                }
                edOpt.AllowNone = false;
                edOpt.AllowObjectOnLockedLayer = false;

                Autodesk.AutoCAD.EditorInput.PromptEntityResult edRes = AcadApp.AcaEd.GetEntity(edOpt);
                if (edRes.Status == Autodesk.AutoCAD.EditorInput.PromptStatus.OK)
                {
                    using (var trans = AcadApp.StartTransaction())
                    {
                        try
                        {
                            Curve selCurve;
                            selCurve = (Curve)trans.GetObject(edRes.ObjectId, OpenMode.ForRead);
                            layerName = selCurve.Layer;
                            color = selCurve.Color;
                            lineType = selCurve.Linetype;
                            AcadApp.AcaEd.WriteMessage("OK.\n");
                        }
                        catch (System.Exception ex)
                        {
                            AcadApp.AcaEd.WriteMessage("\nERROR: AcadApp.SelectSample()::PROCESS " + ex + "\n");
                        }
                    } //using trans
                }
            }
            catch (System.Exception ex)
            {
                AcadApp.AcaEd.WriteMessage("\nERROR: AcadApp.SelectSample()::EXTERNAL " + ex + "\n");
            }
            return;
        }
Exemplo n.º 2
0
        /// <summary>
        /// 插入标注
        /// </summary>
        /// <param name="_esymb"></param>
        /// <param name="position"></param>
        /// <param name="rotateAngle"></param>
        /// <param name="layerId"></param>
        /// <param name="alignment"></param>
        /// <param name="xmlDbManager"></param>
        public static void InsertLabel(ElectronSymbol _esymb, Point3d position, double rotateAngle, ObjectId layerId, int alignment, XmlDBManager xmlDbManager)
        {
            if (_esymb.EntityState != EntityState.Delete)
            {
                _esymb.EntityType = EntityType.Label;
                var value = new LabelEventArgs {
                    xmlDB = xmlDbManager, color = CADColor.FromRgb(0, 0, 0)
                };
                value = GetLabelTextStyle(_esymb, value);

                if (string.IsNullOrEmpty(value.lbText))
                {
                    value.lbText = "";
                }
                //打开图层再添加标注
                PublicMethod.Instance.SetLayerDisplay(layerId, false);
                //标注高度
                var lbHeight = value.lbHeight / MapConfig.Instance.earthscale;

                if (value.lbText.Contains("\n"))
                {
                    var mText = Mtext(value.lbText, position, rotateAngle, lbHeight, layerId);
                    AddEntity(mText, _esymb);
                }
                else
                {
                    var mText = AddText(value.lbText, position, rotateAngle, lbHeight, layerId, value.color, alignment);
                    AddEntity(mText, _esymb);
                }
            }
        }
Exemplo n.º 3
0
        // Returns the id of the layer (Creates the layer if it does not exist)
        public static ObjectId GetOrCreateLayer(Database db, string layerName, Autodesk.AutoCAD.Colors.Color color)
        {
            ObjectId id = ObjectId.Null;

            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                LayerTable table = (LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForRead);
                if (table.Has(layerName))
                {
                    id = table[layerName];
                }
                else
                {
                    LayerTableRecord layer = new LayerTableRecord();
                    layer.Name = layerName;
                    if (color != null)
                    {
                        layer.Color = color;
                    }

                    table.UpgradeOpen();
                    id = table.Add(layer);
                    table.DowngradeOpen();
                    tr.AddNewlyCreatedDBObject(layer, true);
                }

                tr.Commit();
            }

            return(id);
        }
Exemplo n.º 4
0
 private ObjectId SetPolyLine(Polyline pline, CADColor color, ObjectId lineLayerId)
 {
     pline.LayerId = lineLayerId;
     pline.Color   = color;
     id            = PublicMethod.Instance.ToModelSpace(pline);
     return(id);
 }
Exemplo n.º 5
0
        /// <summary>
        /// 获取标注样式
        /// </summary>
        /// <param name="g3e_UserName"></param>
        /// <param name="e"></param>
        private static void GetG3e_textstyle(string g3e_UserName, LabelEventArgs e)
        {
            const double increment = 0.05;

            try
            {
                var textstyle = CDDBManager.Instance.GetEntity <G3e_textstyle>(o => o.G3E_USERNAME.ToUpper() == g3e_UserName.ToUpper());
                if (textstyle != null)
                {
                    if (textstyle.G3E_COLOR != null)
                    {
                        e.color = CADColor.FromColor(Color.FromArgb((int)textstyle.G3E_COLOR));
                    }
                    if (textstyle.G3E_SIZE != null)
                    {
                        e.lbHeight = (double)textstyle.G3E_SIZE + increment;
                    }
                }
                else
                {
                    e.lbHeight = 0.2 + increment;
                    e.color    = CADColor.FromRgb(0, 0, 0);
                    LogManager.Instance.Error(string.Format("获取样式失败!{0}", g3e_UserName));
                }
            }
            catch
            {
                e.lbHeight = 0.2 + increment;
                e.color    = CADColor.FromRgb(0, 0, 0);
                LogManager.Instance.Error(string.Format("获取样式失败!{0}", g3e_UserName));
            }
        }
Exemplo n.º 6
0
        public static Autodesk.AutoCAD.Colors.Color GetColorByLayer(ObjectId layer)
        {
            Autodesk.AutoCAD.Colors.Color cl = new Autodesk.AutoCAD.Colors.Color();
            try
            {
                using (var loc = AcadApp.AcaDoc.LockDocument())
                {
                    using (var trans = StartTransaction())
                    {
                        LayerTableRecord ltr = trans.GetObject(layer, OpenMode.ForRead) as LayerTableRecord;
                        if (ltr == null)
                        {
                            LufsGenplan.AcadApp.AcaEd.WriteMessage("\nDEBUG: GetColorByLayer ltr == null\n");
                        }
                        cl = ltr.Color;

                        trans.Commit();
                    }
                }
                return cl;
             }
            catch (System.Exception ex)
            {
                AcadApp.AcaEd.WriteMessage("\nERROR: AcadApp.GetColorByLayer() " + ex.Message + "\n");
            }
            return cl;
        }
Exemplo n.º 7
0
        public static Region NewRegion(DBObjectCollection objs, Autodesk.AutoCAD.Colors.Color color)
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db  = doc.Database;

            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                //-------------------------------
                // 获取模型空间
                //-------------------------------
                BlockTable blockTbl = tr.GetObject(
                    db.BlockTableId, OpenMode.ForRead) as BlockTable;
                BlockTableRecord modelSpace = tr.GetObject(
                    blockTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;


                //-------------------------------
                // 创建填充对象
                //-------------------------------

                DBObjectCollection regions = Region.CreateFromCurves(objs);
                if (regions.Count <= 0)
                {
                    return(null);
                }
                Region region = regions[0] as Region;
                region.Color = color;
                modelSpace.AppendEntity(region);
                tr.AddNewlyCreatedDBObject(region, true);

                //
                tr.Commit();
                return(region);
            }
        }
Exemplo n.º 8
0
 //[CommandMethod("GetLayerPro")]
 public static void GetLayerPro()
 {
     try
     {
         Editor   ed = Application.DocumentManager.MdiActiveDocument.Editor;
         Database db = new Database(false, true);
         if (File.Exists(FileName))
         {
             db.ReadDwgFile(FileName, FileShare.Read, true, null);
             using (Transaction trans = db.TransactionManager.StartTransaction())
             {
                 LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForRead);
                 foreach (ObjectId layerId in lt)
                 {
                     LayerTableRecord ltr = (LayerTableRecord)trans.GetObject(layerId, OpenMode.ForRead);
                     if (ltr != null)
                     {
                         Autodesk.AutoCAD.Colors.Color layerColor = ltr.Color;
                         ed.WriteMessage("\n图层名称为:" + ltr.Name);
                         ed.WriteMessage("\n图层颜色为:" + layerColor.ToString());
                     }
                 }
                 trans.Commit();
             }
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Exemplo n.º 9
0
        private void cmdGetNumeric_Click(System.Object eventSender, System.EventArgs eventArgs)
        {
            BaseObjs.acadActivate();
            Entity  ent         = null;
            Point3d pnt3dPicked = Pub.pnt3dO;

            try
            {
                string msg = string.Format("\nSelect the {0}1{1} grid line:\n", 34.asciiToString(), 34.asciiToString());
                ent = Base_Tools45.Select.selectEntity(typeof(Line), msg, "", out pnt3dPicked);
                if (ent == null)
                {
                    return;
                }
            }
            catch (System.Exception)
            {
                return;
            }

            Line  objGridNumeric1 = (Line)ent;
            Color color           = new Color();

            color = Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByBlock, 3);
            objGridNumeric1.ObjectId.changeProp(LineWeight.ByLayer, color);

            GRIDNUMERIC.Add(objGridNumeric1.Handle);
            int i = objGridNumeric1.Layer.IndexOf("GRID");

            string strName = objGridNumeric1.Layer.Substring(i);

            Stake_Grid.setupGrid(objGridNumeric1.ObjectId, strName, "NUMERIC");

            Stake_Dict.updateDictGRIDsWithBldgName(GRIDNUMERIC, strName, "NUMERIC");
        }
Exemplo n.º 10
0
        /// <summary>
        /// 加载点线面设备
        /// </summary>
        /// <param name="symbol"></param>
        /// <param name="xmlDBManager"> </param>
        private void LoadIncrementSymbol(DBSymbolEntry symbol, XmlDBManager xmlDBManager)
        {
            try
            {
                if (!string.IsNullOrEmpty(symbol.SymbolPtTable))
                {
                    var type = TypeCache.Instance.GetTypeFromCache(typeof(DBEntity), symbol.SymbolPtTable.Trim());
                    if (xmlDBManager.Has(type))
                    {
                        //获取坐标数据
                        var pts = xmlDBManager.GetEntities(type).Cast <ElectronSymbol>();
                        //颜色转换
                        var color = CADColor.FromColor(Color.FromArgb(int.Parse(symbol.OtherProperty.SymbolColor)));

                        //加载图形
                        AddElectronSymbol(symbol.OtherProperty.LayerName.Trim(), pts, color, symbol.OtherProperty.LineType, symbol.OtherProperty.LineWidth);
                    }
                }
            }
            catch (Exception ex)
            {
                if (!ex.Message.Contains("给定关键字不在字典中"))
                {
                    LogManager.Instance.Error("加载设备错误!" + ex);
                }
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// 重新设置实体记录
 /// </summary>
 /// <param name="newObjId">新实体的objid</param>
 /// <param name="oldObjId">旧实体的objid</param>
 public void ResetEntityRecord(ObjectId newObjId, ObjectId oldObjId)
 {
     try
     {
         DCadApi.isModifySymbol = true;
         using (Transaction trans = PublicMethod.Instance.acDoc.TransactionManager.StartTransaction())
         {
             using (PublicMethod.Instance.acDoc.LockDocument())
             {
                 var    temp = trans.GetObject(newObjId, OpenMode.ForRead, true);
                 Entity ent  = temp as Entity;
                 if (ent != null)
                 {
                     //有可能是只改了颜色
                     //这里是把新的实体的objId和color存起来,替换旧的,因为实体被更新后这些东西发生了改变
                     _FindEntObjId = newObjId;
                     _FindEntCol   = ent.Color;
                     //ent.UpgradeOpenAndRun();
                     //ent.Color = Autodesk.AutoCAD.Colors.Color.FromRgb(0, 255, 0);
                     trans.Commit();
                 }
             }
         }
     }
     catch (Autodesk.AutoCAD.Runtime.Exception)
     {
         //如果实体发生改变颜色自动会跟着改变,否则颜色也是不会改变的
         _FindEntObjId = oldObjId;
     }
     finally
     {
         DCadApi.isModifySymbol = false;
     }
 }
Exemplo n.º 12
0
 /// <summary>
 /// 加载图形
 /// </summary>
 /// <param name="layerId"></param>
 /// <param name="esymb"></param>
 /// <param name="color"></param>
 /// <param name="strLineType"></param>
 /// <param name="lineWidth"></param>
 private void AddElectronSymbol(ObjectId layerId, ElectronSymbol esymb, CADColor color, string strLineType, double lineWidth)
 {
     //处理新增数据
     if (esymb.EntityState == EntityState.Insert)
     {
         LoadIncrementSymbol(layerId, esymb, color, strLineType, lineWidth);
     }
 }
Exemplo n.º 13
0
		public override void Initialization(Transaction transaction)
		{
			var layerTableRecord = ObtainDbObject(transaction, OpenMode.ForRead) as LayerTableRecord;

			name = layerTableRecord.Name;
			color = layerTableRecord.Color;
			visibility = layerTableRecord.IsOff;
		}
Exemplo n.º 14
0
        private void ShowTransientErrorMark(CheckResult checkResult)
        {
            var markshape = ErrorMarkSettings.CurrentSettings.MarkShapes[checkResult.ActionType];
            var color     = ErrorMarkSettings.CurrentSettings.MarkColors[checkResult.ActionType];
            var acadColor = AcadColor.FromRgb(color.R, color.G, color.B);

            _transientGraphicsMgr.CreateTransientErrorMarks(markshape, checkResult.MarkPoints, acadColor, checkResult.TransientDrawables);
        }
Exemplo n.º 15
0
        /// <summary>
        /// 获取标注值
        /// </summary>
        /// <param name="g3e_cno"></param>
        /// <param name="g3e_fno"> </param>
        /// <param name="g3e_fid"> </param>
        /// <returns></returns>
        public static LabelEventArgs GetLabelText(string g3e_cno, long g3e_fid, long g3e_fno)
        {
            var labelEventArgs = new LabelEventArgs {
                xmlDB = DBManager.Instance as XmlDBManager, color = CADColor.FromRgb(0, 0, 0)
            };

            labelEventArgs = GetLabelTextStyle(g3e_cno, g3e_fid, g3e_fno, labelEventArgs);
            return(labelEventArgs);
        }
Exemplo n.º 16
0
        /// <summary>
        /// 获取标注值
        /// </summary>
        /// <param name="g3e_cno"></param>
        /// <param name="g3eObject"> </param>
        /// <returns></returns>
        public static LabelEventArgs GetLabelText(string g3e_cno, G3EObject g3eObject)
        {
            var labelEventArgs = new LabelEventArgs {
                xmlDB = DBManager.Instance as XmlDBManager, color = CADColor.FromRgb(0, 0, 0)
            };

            labelEventArgs = GetLabelTextStyle(g3e_cno, g3eObject.G3E_FID, g3eObject.G3E_FNO, labelEventArgs);
            return(labelEventArgs);
        }
Exemplo n.º 17
0
        /// <summary>
        /// 获取标注值
        /// </summary>
        /// <param name="electronSymbol">标注的坐标表</param>
        /// <returns></returns>
        public static LabelEventArgs GetLabelText(ElectronSymbol electronSymbol)
        {
            var labelEventArgs = new LabelEventArgs {
                xmlDB = DBManager.Instance as XmlDBManager, color = CADColor.FromRgb(0, 0, 0)
            };

            labelEventArgs = GetLabelTextStyle(electronSymbol, labelEventArgs);
            return(labelEventArgs);
        }
Exemplo n.º 18
0
        private object DrawPyramidTask(Document doc, Transaction tr, object[] input)
        {
            Drawer drawer = new Drawer(tr);

            Point3d[] pts = (Point3d[])input[0];
            Autodesk.AutoCAD.Colors.Color green = Autodesk.AutoCAD.Colors.Color.FromRgb(0, 255, 0);
            drawer.Quad(pts[0], pts[1], pts[2], pts[3], green); //ABCD
            drawer.Triangle(pts[0], pts[1], pts[4], green);     //ABE
            drawer.Triangle(pts[1], pts[2], pts[4], green);     //BCE
            drawer.Triangle(pts[2], pts[3], pts[4], green);     //CDE
            drawer.Triangle(pts[3], pts[0], pts[4], green);     //DAE
            return(null);
        }
Exemplo n.º 19
0
        ///  <summary>
        ///  由插入点、文字内容、文字样式、文字高度、文字宽度创建多行文字
        ///  </summary>
        ///  <param name="textString">文字内容</param>
        ///  <param name="location"> 基点</param>
        ///  <param name="lbHeight"> 文字高度</param>
        ///  <param name="rot">文字转角</param>
        /// <param name="layerId">层ID</param>
        /// <param name="alginment"> </param>
        /// <returns></returns>
        public static MText Mtext(string textString, Point3d location, double lbHeight, double rot, ObjectId layerId, int alginment)
        {
            var txt = new MText
            {
                Location    = location,
                Rotation    = rot,
                Contents    = textString,
                LayerId     = layerId,
                TextHeight  = lbHeight,
                Color       = CADColor.FromRgb(0, 0, 0),
                TextStyleId = PublicMethod.Instance.MultTextStyleId
            };

            return(txt);
        }
Exemplo n.º 20
0
        public void DrawPolylines(List <Point3D> Objects, bool ShouldDeletePrevious, Autodesk.AutoCAD.Colors.Color color)
        {
            // If ModifyViewspace method is called from different thread, InvokeRequired will be true
            if (syncControl.InvokeRequired)
            {
                syncControl.Invoke(new DrawPolylinesDelegate(DrawPolylines), new object[] { Objects, ShouldDeletePrevious, color });
            }
            else
            {
                Document doc = AcadApp.DocumentManager.MdiActiveDocument;
                using (DocumentLock docLock = doc.LockDocument())
                {
                    Database currentDb = doc.Database;
                    using (Transaction trans = currentDb.TransactionManager.StartTransaction())
                    {
                        // Deleting the previous drawn object
                        if ((PreviousViewPoint != ObjectId.Null) && (ShouldDeletePrevious))
                        {
                            Entity ent = (Entity)trans.GetObject(PreviousViewPoint, OpenMode.ForWrite);
                            ent.Erase();
                            ent.Dispose();
                        }
                        // Open the Block table for read
                        BlockTable blockTable;
                        blockTable = trans.GetObject(currentDb.BlockTableId, OpenMode.ForRead) as BlockTable;
                        // Open the Block table record Model space for write
                        BlockTableRecord blockTblRec =
                            trans.GetObject(blockTable[BlockTableRecord.ModelSpace],
                                            OpenMode.ForWrite) as BlockTableRecord;

                        Point3dCollection plCollection = new Point3dCollection();
                        foreach (Point3D p in Objects)
                        {
                            plCollection.Add(new Point3d(p.X, p.Y, p.Z));
                        }
                        Polyline3d pl = new Polyline3d(Poly3dType.SimplePoly, plCollection, false);
                        pl.Color = color;

                        PreviousViewPoint = blockTblRec.AppendEntity(pl);
                        trans.AddNewlyCreatedDBObject(pl, true);
                        trans.Commit();

                        // Updates the screen without flickering of view
                        AcadApp.UpdateScreen(); // or doc.Editor.Regen();
                    }
                }
            }
        }
Exemplo n.º 21
0
        /// <summary>
        /// 添加分段导线
        /// </summary>
        /// <param name="objectId"></param>
        /// <param name="lineLayerID"></param>
        /// <param name="color"></param>
        /// <param name="lineWidth"></param>
        private void AddPolyline(ObjectId objectId, ObjectId lineLayerID, CADColor color, double lineWidth)
        {
            var ptcol = new Point2dCollection();

            for (int i = 0; i < pline.NumberOfVertices; i++)
            {
                ptcol.Add(pline.GetPoint2dAt(i));
            }
            PublicMethod.Instance.EraseObject(objectId);

            dxObjIdList = new Dictionary <ObjectId, LateralLineData>();
            for (var i = 0; i < ptcol.Count - 1; i++)
            {
                var lineString = new LineString();
                var pl         = new Polyline();
                pl.LayerId  = lineLayerID;
                pl.Color    = color;
                pl.Linetype = "Continuous";

                var startPoint = ptcol[i];
                var endPoint   = ptcol[i + 1];

                pl.AddVertexAt(pl.NumberOfVertices, new Point2d(startPoint.X, startPoint.Y), 0, lineWidth, lineWidth);
                lineString.Points.Add(new ElectronTransferModel.Geo.Point(new[] { startPoint.X, startPoint.Y, 0 }));
                pl.AddVertexAt(pl.NumberOfVertices, new Point2d(endPoint.X, endPoint.Y), 0, lineWidth, lineWidth);
                lineString.Points.Add(new ElectronTransferModel.Geo.Point(new[] { endPoint.X, endPoint.Y, 0 }));
                var id = PublicMethod.Instance.ToModelSpace(pl);

                var angle = PublicMethod.Instance.GetAngle(new Point2d(startPoint.X, startPoint.Y),
                                                           new Point2d(endPoint.X, endPoint.Y));


                var lld = new LateralLineData
                {
                    lineString = lineString,
                    lineAngle  = angle
                };
                if (i == 0)
                {
                    lld.startObjID = id;
                }
                if (i == 1)
                {
                    lld.endObjID = id;
                }
                dxObjIdList.Add(id, lld);
            }
        }
Exemplo n.º 22
0
 /// <summary>
 /// 加载图形
 /// </summary>
 /// <param name="_layerName"></param>
 /// <param name="esymbs"></param>
 /// <param name="color"></param>
 /// <param name="strLineType"></param>
 /// <param name="lineWidth"></param>
 private void AddElectronSymbol(string _layerName, IEnumerable <ElectronSymbol> esymbs, CADColor color, string strLineType, double lineWidth)
 {
     if (esymbs.Any())
     {
         //添加图层
         var layerId = DCadApi.addLayer(_layerName, CADColor.FromRgb(255, 255, 255));
         if (layerId != ObjectId.Null)
         {
             foreach (var _ee in esymbs)
             {
                 //加载符号
                 AddElectronSymbol(layerId, _ee, color, strLineType, lineWidth);
             }
         }
     }
 }
Exemplo n.º 23
0
        // Получение цвета для модели слоя
        public System.Windows.Media.Color LayerColor(Autodesk.AutoCAD.Colors.Color AcadColor)
        {
            if (!AcadColor.IsByAci)
            {
                if (AcadColor.IsByLayer)
                {
                    return(Colors.White);
                }
                else if (AcadColor.IsByBlock)
                {
                    return(Colors.White);
                }
                else
                {
                    return(System.Windows.Media.Color.FromRgb(AcadColor.Red, AcadColor.Green, AcadColor.Blue));
                }
            }
            else
            {
                short colIndex = AcadColor.ColorIndex;
                byte  byt      = Convert.ToByte(colIndex);
                int   rgb      = Autodesk.AutoCAD.Colors.EntityColor.LookUpRgb(byt);
                long  b        = (rgb & 0xffL);
                long  g        = (rgb & 0xff00L) >> 8;
                long  r        = rgb >> 16;

                if (colIndex == 7)
                {
                    if (r <= 128 && g <= 128 && b <= 128)
                    {
                        return(Colors.White);
                    }
                    else
                    {
                        return(Colors.Black);
                    }
                }
                else
                {
                    return(System.Windows.Media.Color.FromRgb((byte)r, (byte)g, (byte)b));
                }
            }
        }
Exemplo n.º 24
0
        public void SetCurrentGroup()
        {
            Autodesk.AutoCAD.Colors.Color countColor = new Autodesk.AutoCAD.Colors.Color();

            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                try
                {
                    PosGroup item = tr.GetObject(PosGroup.GroupId, OpenMode.ForRead) as PosGroup;
                    if (item == null) return;
                    countColor = item.CountColor;
                }
                catch
                {
                    ;
                }
            }

            CountOverrule.Instance.SetProperties(countColor);

            DWGUtility.RefreshAllPos();
        }
Exemplo n.º 25
0
        private void btSample_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                String layerName;
                String lineType;
                Autodesk.AutoCAD.Colors.Color color;

                btRefresh_Click(sender, e);

                AcadApp.SelectSample(RbAllEnt.IsChecked ?? false, out layerName, out color, out lineType);

                if (layerName == null)
                {
                    return;
                }
                CheckbLayerUse.IsChecked = true;
                cbLayerUse.Text = layerName;

                selected_color = color;
                if (selected_color.ColorNameForDisplay == "BYLAYER")
                {
                    Autodesk.AutoCAD.Colors.Color c = AcadApp.GetColorByLayer(cbLayerUse.Text);
                    pColor.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(c.ColorValue.A, c.ColorValue.R,
                                                                                                c.ColorValue.G, c.ColorValue.B));
                }
                else
                {
                    pColor.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(selected_color.ColorValue.A, selected_color.ColorValue.R,
                                                                                            selected_color.ColorValue.G, selected_color.ColorValue.B));
                }
                CheckbColorUse.IsChecked = true;

                pColor.UpdateLayout();
                LbColorName.Content = "Цвет: " + selected_color.ColorNameForDisplay;

                CheckbLinetUse.IsChecked = true;
                cbLinetUse.Text = lineType;
            }
            catch (Exception ex)
            {
                AcadApp.AcaEd.WriteMessage("\nERROR: AreaLinearCalc.btSample_Click() " + ex + "\n");
            }
        }
Exemplo n.º 26
0
        private void BtSelectColor_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                selected_color = AcadApp.SelectColor();
                if (selected_color == null)
                {
                    CheckbColorUse_Unchecked(sender, e);
                    return;
                }

                if (selected_color.ColorNameForDisplay == "BYLAYER")
                {
                    Autodesk.AutoCAD.Colors.Color c = AcadApp.GetColorByLayer(cbLayerUse.Text);
                    pColor.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(c.ColorValue.A, c.ColorValue.R,
                                                                                                c.ColorValue.G, c.ColorValue.B));
                }
                else
                {
                    pColor.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(selected_color.ColorValue.A, selected_color.ColorValue.R,
                                                                                            selected_color.ColorValue.G, selected_color.ColorValue.B));
                }

                pColor.UpdateLayout();

                LbColorName.Content = "Цвет: " + selected_color.ColorNameForDisplay;
            }
            catch (Exception ex)
            {
                AcadApp.AcaEd.WriteMessage("\nERROR: AreaLinearCalc.BtSelectColor_Click() " + ex + "\n");
            }
        }
Exemplo n.º 27
0
 public Boolean DocumentActivated()
 {
     try
     {
         //Layer setup
         cbLayerUse.Items.Clear();
         foreach (var item in LufsGenplan.AcadApp.GetLayersList())
         {
             cbLayerUse.Items.Add(item as object);
         }
         cbLayerUse.SelectedItem = cbLayerUse.Items[0];
         currentLayer = cbLayerUse.Text;
         //Linetype setup
         cbLinetUse.Items.Clear();
         foreach (var item in LufsGenplan.AcadApp.GetLinetypeList())
         {
             cbLinetUse.Items.Add(item as object);
         }
         cbLinetUse.SelectedItem = cbLinetUse.Items[0];
         currentLinetType = cbLinetUse.Text;
         //Color setup
         CheckbColorUse.Checked = false;
         selected_color = null;
         LbColorName.Text = "Цвет: ";
         pColor.BackColor = this.BackColor;
         return true;
     }
     catch (Exception ex)
     {
         LufsGenplan.AcadApp.AcaEd.WriteMessage("\nERROR: AreaLinearCalc.DocumentActivated() " + ex + "\n");
     }
     return false;
 }
Exemplo n.º 28
0
        private void btSample_Click(object sender, EventArgs e)
        {
            try
            {
                btSample.Enabled = false;
                String layerName;
                String lineType;
                Autodesk.AutoCAD.Colors.Color color;

                LufsGenplan.AcadApp.SelectSample(RbAllEnt.Checked, out layerName, out color, out lineType);

                if (layerName == null)
                {
                    return;
                }
                CheckbLayerUse.Checked = true;

                for (int j = 0; j < cbLayerUse.Items.Count; j++)
                {
                    if ((cbLayerUse.Items[j] as AcadUtils.CbAutocadItem).Name == layerName)
                    {
                        cbLayerUse.SelectedIndex = j;
                        break; //for
                    }
                }
                currentLayer = cbLayerUse.Text;

                selected_color = color;
                if (selected_color.ColorNameForDisplay == "BYLAYER")
                {
                    Autodesk.AutoCAD.Colors.Color cl = LufsGenplan.AcadApp.GetColorByLayer((cbLayerUse.SelectedItem as AcadUtils.CbAutocadItem).ID);
                    pColor.BackColor = cl.ColorValue;
                }
                else
                {
                    pColor.BackColor = selected_color.ColorValue;
                }
                pColor.Update();
                LbColorName.Text = "Цвет: " + selected_color.ColorNameForDisplay;
                CheckbColorUse.Checked = true;

                CheckbLinetUse.Checked = true;

                for (int j = 0; j < cbLinetUse.Items.Count; j++)
                {
                    if ((cbLinetUse.Items[j] as AcadUtils.CbAutocadItem).Name == lineType)
                    {
                        cbLinetUse.SelectedIndex = j;
                        break; //for
                    }
                }
                currentLinetType = cbLinetUse.Text;
            }
            catch (Exception ex)
            {
                LufsGenplan.AcadApp.AcaEd.WriteMessage("\nERROR: AreaLinearCalc.btSample_Click() " + ex + "\n");
            }
            finally
            {
                btSample.Enabled = true;
            }
        }
Exemplo n.º 29
0
        private void BtSelectColor_Click(object sender, EventArgs e)
        {
            try
            {
                selected_color = LufsGenplan.AcadApp.SelectColor();

                if (selected_color == null)
                {
                    CheckbColorUse.CheckState = CheckState.Unchecked;
                    return;
                }

                if (selected_color.ColorNameForDisplay == "BYLAYER")
                {
                    Autodesk.AutoCAD.Colors.Color cl = LufsGenplan.AcadApp.GetColorByLayer((cbLayerUse.SelectedItem as AcadUtils.CbAutocadItem).ID);
                    pColor.BackColor = cl.ColorValue; //!!!!!!!!!!!
                }
                else
                {
                    pColor.BackColor = selected_color.ColorValue;
                }
                pColor.Update();

                LbColorName.Text = "Цвет: " + selected_color.ColorNameForDisplay;
            }
            catch (Exception ex)
            {
                LufsGenplan.AcadApp.AcaEd.WriteMessage("\nERROR: AreaLinearCalc.BtSelectColor_Click() " + ex + "\n");
            }
        }
Exemplo n.º 30
0
 public void UpdateColor()
 {
     Autodesk.AutoCAD.Colors.Color c = new Autodesk.AutoCAD.Colors.Color();
     if (this.state == EstadoSemaforo.siga)
     {
         c = Autodesk.AutoCAD.Colors.Color.FromRgb((byte)0, (byte)255, (byte)0);
         this.posIndicator = new Point3d(0f, 0f, -12f);
     }
     if (this.state == EstadoSemaforo.alto)
     {
         c = Autodesk.AutoCAD.Colors.Color.FromRgb((byte)255, (byte)0, (byte)0);
         this.posIndicator = new Point3d(0f, 0f, -3f);
     }
     if (this.state == EstadoSemaforo.precaucion)
     {
         c = Autodesk.AutoCAD.Colors.Color.FromRgb((byte)255, (byte)255, (byte)0);
         this.posIndicator = new Point3d(0f, 0f, -7.5f);
     }
     Lab3.DBMan.UpdateColor(this.idIndicator, c);
     Lab3.DBMan.UpdateBlockPosition(new Point3d(this.block.Position.X + this.posIndicator.X, this.block.Position.Y + this.posIndicator.Y, this.block.Position.Z + this.posIndicator.Z), this.idIndicator);
 }