找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 706|回复: 3

[每日一码] 使用.NET创建一个AutoCAD线型

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2017-5-25 15:00:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. using Autodesk.AutoCAD.Runtime;
  2. using Autodesk.AutoCAD.ApplicationServices;
  3. using Autodesk.AutoCAD.DatabaseServices;
  4. using Autodesk.AutoCAD.Geometry;
  5. using Autodesk.AutoCAD.EditorInput;

  6. namespace Linetype
  7. {
  8.   public class Commands
  9.   {
  10.     [CommandMethod("CL")]
  11.     public void CreateLinetype()
  12.     {
  13.       Document doc =
  14.         Application.DocumentManager.MdiActiveDocument;
  15.       Database db = doc.Database;
  16.       Editor ed = doc.Editor;

  17.       Transaction tr =
  18.         db.TransactionManager.StartTransaction();
  19.       using (tr)
  20.       {
  21.         // 获取线型表

  22.         LinetypeTable lt =
  23.           (LinetypeTable)tr.GetObject(
  24.             db.LinetypeTableId,
  25.             OpenMode.ForWrite
  26.           );

  27.         // 创建新的线型表记录...

  28.         LinetypeTableRecord ltr =
  29.           new LinetypeTableRecord();

  30.         // ... 设置线型表记录的属性

  31.         ltr.AsciiDescription = "T E S T -";
  32.         ltr.PatternLength = 0.75;
  33.         ltr.NumDashes = 2;
  34.         ltr.SetDashLengthAt(0, 0.5);
  35.         ltr.SetDashLengthAt(1,-0.25);
  36.         ltr.Name = "TESTLINTEYPE";

  37.         // 把新的线型添加到线型表

  38.         ObjectId ltId = lt.Add(ltr);
  39.         tr.AddNewlyCreatedDBObject(ltr,true);

  40.         // 使用这个新线型创建一条测试直线

  41.         BlockTable bt =
  42.           (BlockTable)tr.GetObject(
  43.             db.BlockTableId,
  44.             OpenMode.ForRead
  45.           );
  46.         BlockTableRecord btr =
  47.           (BlockTableRecord)tr.GetObject(
  48.             bt[BlockTableRecord.ModelSpace],
  49.             OpenMode.ForWrite
  50.           );

  51.         Line ln =
  52.           new Line(
  53.             new Point3d(0, 0, 0),
  54.             new Point3d(10, 10, 0)
  55.           );

  56.         ln.SetDatabaseDefaults(db);
  57.         ln.LinetypeId = ltId;

  58.         btr.AppendEntity(ln);
  59.         tr.AddNewlyCreatedDBObject(ln, true);

  60.         tr.Commit();
  61.       }
  62.     }
  63.   }
  64. }


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-5-25 17:28:01 | 显示全部楼层
用.NET开发CAD的太少了,还是用LISP的画图匠多点.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3186个

财富等级: 富可敌国

发表于 2017-5-26 08:39:39 | 显示全部楼层
好好学习天天向上,不断学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2018-11-18 21:44:35 | 显示全部楼层
感谢分享,学习了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-28 22:55 , Processed in 0.536116 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表