1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using Autodesk.AutoCAD.ApplicationServices;
- using Autodesk.AutoCAD.Colors;
- using Autodesk.AutoCAD.DatabaseServices;
- using Autodesk.AutoCAD.EditorInput;
- using Autodesk.AutoCAD.Runtime;
- using Autodesk.AutoCAD.Windows;
- using Autodesk.AutoCAD.Geometry;
- using DotNetARX2014;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Linq;
- using System.Security.Cryptography.X509Certificates;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace AutoNum
- {
- public class Cmd
- {
- //Demo1:CmdWIN
- [CommandMethod("CmdWIN")]
- public void CmdWIN()
- {
- AutoNumForm form = new AutoNumForm();
- //将窗体以模态对话框的形式显示
- form.ShowDialog();
- //System.Windows.Forms.MessageBox.Show("Hello WinForm", "Info(Tips)");
- }
- public void ChangeNum(string strPre,int numLength,int startNum)
- {
- //获取当前文档
- Document doc = Application.DocumentManager.MdiActiveDocument;
- //从当前文档获取Database
- Database db = doc.Database;
- using (Transaction trans = db.TransactionManager.StartTransaction())
- {
- //获取单行文字
- var dbDBText = db.GetEntsInModelSpace<DBText>();
- var drawingNums = (from t in dbDBText
- //获取图号图层上的单行文字
- where t.Layer.Equals("图号")
- //进行排序,竖向降序,横向升序
- orderby t.Position.Y descending,t.Position.X ascending
- select t);
- //循环更改文字
- int count = startNum;
- foreach(var item in drawingNums)
- {
- DBText text = trans.GetObject(item.ObjectId,OpenMode.ForWrite) as DBText;
- text.TextString = strPre + count.ToString("D" + numLength);
- //text.Color = Color.FromColorIndex(ColorMethod.ByColor,3);
- count++;
- }
- trans.Commit();
- }
-
- }
- }
- }
|