EaBIM

标题: [实体对象] 镜像对象 [打印本页]

作者: 萧闫子    时间: 2014-1-8 16:47
标题: [实体对象] 镜像对象
本例创建一个Leader(引线)对象,并以Y轴为镜像轴镜像,类似的对对象的操作还有偏移、复制、缩放、旋转,相关的函数及操作见第五章的对象操作方法。
  • using System;
  • using Autodesk.AutoCAD.ApplicationServices;
  • using Autodesk.AutoCAD.DatabaseServices;
  • using Autodesk.AutoCAD.Geometry;
  • using Autodesk.AutoCAD.EditorInput;
  • using Autodesk.AutoCAD.Runtime;
  • [assembly: CommandClass(typeof(Sample.EditEntity))]
  • namespace Sample
  • {
  •     class EditEntity
  •     {
  •         [CommandMethod("EditEntity")]
  •         public void EditEnt()
  •         {
  •             Database db = HostApplicationServices.WorkingDatabase;
  •             using (Transaction tr = db.TransactionManager.StartTransaction())
  •             {
  •                 Leader Leader = (Leader)SelectEntity("\n选择对象");
  •                 if (Leader != null)
  •                     Mirror(Leader, new Point3d(0, 0, 0), new Point3d(0, 1, 0));
  •                 tr.Commit();
  •             }
  •         }
  •         /// <summary>
  •         /// 提示用户选择单个实体
  •         /// </summary>
  •         /// <param name="word">选择提示</param>
  •         /// <returns>实体对象</returns>
  •         public static Entity SelectEntity(string word)
  •         {
  •             Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
  •             Database db = doc.Database;
  •             Editor ed = doc.Editor;
  •             Entity entity = null;
  •             PromptEntityResult ent = ed.GetEntity(word);
  •             if (ent.Status == PromptStatus.OK)
  •             {
  •                 using (Transaction transaction = db.TransactionManager.StartTransaction())
  •                 {
  •                     entity = (Entity)transaction.GetObject(ent.ObjectId, OpenMode.ForWrite, true);
  •                     transaction.Commit();
  •                 }
  •             }
  •             return entity;
  •         }
  •         /// <summary>
  •         /// 指定两个镜像参照点得到实体镜像
  •         /// </summary>
  •         /// <param name="ent">实体对象</param>
  •         /// <param name="mirrorPt1">镜像点1</param>
  •         /// <param name="mirrorPt2">镜像点2</param>
  •         public static Entity Mirror(Entity ent, Point3d mirrorPt1, Point3d mirrorPt2)
  •         {
  •             Line3d mirrorLine = new Line3d(mirrorPt1, mirrorPt2);
  •             Matrix3d mt = Matrix3d.Mirroring(mirrorLine);
  •             ent.TransformBy(mt);
  •             return ent;
  •         }
  •     }
  • }


复制代码

先画一个用于镜像的对象:


运行命令” EditEntity”后选中对象,可以看到对象按照我们规定的镜像线翻转了。


作者: AK47    时间: 2014-2-13 09:59
不断的学习的过程 希望一起加油啊
作者: 鹦鹉仔    时间: 2014-2-18 12:08
顶...... 楼下跟上.....
作者: 波罗友    时间: 2014-3-10 13:21
顶!!!!!!!!!!
作者: NetBeetle    时间: 2014-3-11 11:06
楼主辛苦……
作者: 黑超BB    时间: 2014-3-11 11:11
顶!!!!!!!!!!!!
作者: chen_0003    时间: 2014-3-11 11:15
谢谢BIM大神…
作者: 孙雅    时间: 2014-3-14 11:19
顶...... 楼下跟上.....
作者: 教父    时间: 2014-3-14 11:24
顶!!!!!!!!!!
作者: 嫣雨遥    时间: 2014-3-14 11:28
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: AK47    时间: 2014-3-14 11:35
顶......
楼下跟上.....
作者: 蓝天POLO    时间: 2014-5-7 10:01
(*^__^*) 嘻嘻……
作者: dison    时间: 2014-5-13 10:20
顶起来…………
作者: 飞天舞    时间: 2014-5-13 10:25
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: best    时间: 2014-5-13 10:27
路过!!! 不发表意见……
作者: 长风    时间: 2014-5-22 15:21
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 拉登    时间: 2014-5-22 15:37
顶!!!!!!!!!!
作者: 长风    时间: 2014-5-22 15:47
(*^__^*) 嘻嘻……
作者: 江枫    时间: 2014-5-23 11:15
(*^__^*) 嘻嘻……
作者: 中华!    时间: 2014-6-9 15:46
顶起来…………
作者: 大奔KY    时间: 2014-6-9 15:51
路过!!!
帮顶……
作者: 静儿    时间: 2014-6-11 18:13
顶起来…………
作者: 沧海冷月    时间: 2014-6-11 18:15
(*^__^*) 嘻嘻……
作者: leowave    时间: 2014-6-13 14:13
(*^__^*) 嘻嘻……
作者: 冰山    时间: 2014-6-13 14:19
顶......
楼下跟上.....
作者: 猫猫girl    时间: 2014-6-13 14:30
(*^__^*) 嘻嘻……
作者: 乖乖仔    时间: 2014-6-13 14:32
顶!!!!!!!!!!




欢迎光临 EaBIM (https://eabim.net/) Powered by Discuz! X3.2