找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 728|回复: 5

[求助] 如何用.net实现点选闭合区域生成hatch填充?

[复制链接]

已领礼包: 10个

财富等级: 恭喜发财

发表于 2019-1-24 11:15:37 | 显示全部楼层 |阅读模式

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

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

×
论坛中以及其他网站上提供了对给定边界进行图案填充的方法,但是对于需要点选闭合区域并生成hatch填充图案的情况,用.net如何实现?请教大神们!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-1-24 12:46:32 | 显示全部楼层
调用BO命令,生成边界,然后就和你知道的一样了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 10个

财富等级: 恭喜发财

 楼主| 发表于 2019-1-25 09:03:43 | 显示全部楼层
Lisphk 发表于 2019-1-24 12:46
调用BO命令,生成边界,然后就和你知道的一样了。

这种操作我已经实现了,不过总有点曲线救国的味道。我在想,既然可以调用bo命令,为什么不能调用hatch命令直接实现呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10个

财富等级: 恭喜发财

 楼主| 发表于 2019-1-25 09:05:02 | 显示全部楼层
Lisphk 发表于 2019-1-24 12:46
调用BO命令,生成边界,然后就和你知道的一样了。

这种操作我已经实现了,不过总有点曲线救国的味道。我在想,既然可以调用bo命令,为什么不能调用hatch命令直接实现呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 57个

财富等级: 招财进宝

发表于 2021-3-25 10:40:24 | 显示全部楼层
  1. //创建填充
  2.         public static ObjectId CreateHatch(this Database db, string strLayer, params ObjectId[] acObjId)
  3.         {
  4.             ObjectId hatchId = ObjectId.Null;
  5.             using (Transaction trans = db.TransactionManager.StartTransaction())
  6.             {
  7.                 ObjectIdCollection acObjIdColl = new ObjectIdCollection();
  8.                 foreach (ObjectId intId in acObjId)
  9.                 {
  10.                     acObjIdColl.Add(intId);
  11.                 }

  12.                 //创建图案填充对象并添加到块表记录中
  13.                 Hatch hatch = new Hatch();
  14.                 hatch.PatternScale = 30;

  15.                 hatchId = db.AddToModelSpace(hatch);
  16.                 hatch.SetDatabaseDefaults();
  17.                 hatch.SetHatchPattern(HatchPatternType.PreDefined, "钢筋混凝土");
  18.                 hatch.Associative = true;
  19.                 hatch.AppendLoop(HatchLoopTypes.Outermost, acObjIdColl);
  20.                 hatch.Layer = strLayer;

  21.                 hatch.EvaluateHatch(true);
  22.                 trans.Commit();

  23.                 hatchId = hatch.Id;
  24.             }

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 21:19 , Processed in 0.445814 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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