乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 60|回复: 3

AutoCAD 2010的C#实体放样示例——天圆地方

[复制链接]

46

主题

261

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
445
发表于 2009-5-20 07:40:00 | 显示全部楼层 |阅读模式
2010的那两个托管DLL文件中,增加了对“放样”和“扫琼”的支持,使得我们用C#进行三维建模的手段更加丰富了!
以前的CAD版本,用C#能进行“放样曲面”和“扫琼曲面”的操作,但不能进行实体的操作。
  1. // 放样示例:天圆地方.
  2. [CommandMethod("Test")]
  3. public void Test()
  4. {
  5.     Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  6.     Polyline ent1 = new Polyline();
  7.     ent1.AddVertexAt(0, new Point2d(50, 50), 0, 0, 0);
  8.     ent1.AddVertexAt(1, new Point2d(-50, 50), 0, 0, 0);
  9.     ent1.AddVertexAt(2, new Point2d(-50, -50), 0, 0, 0);
  10.     ent1.AddVertexAt(3, new Point2d(50, -50), 0, 0, 0);
  11.     ent1.Closed = true;
  12.     Circle ent2 = new Circle(new Point3d(0, 0, 200), new Vector3d(0, 0, 1), 30);
  13.     Entity[] crossEnts = new Entity[2];
  14.     crossEnts.SetValue(ent1, 0);
  15.     crossEnts.SetValue(ent2, 1);
  16.     Entity[] guideCurs = new Entity[0];
  17.     LoftOptions loftOpt = new LoftOptions();
  18.     Solid3d solid3dEnt = new Solid3d();
  19.     solid3dEnt.RecordHistory = true;
  20.     solid3dEnt.CreateLoftedSolid(crossEnts, guideCurs, null, loftOpt);
  21.     AppendEntity(solid3dEnt);
  22. }
  23. ObjectId AppendEntity(Entity ent)
  24. {
  25.     Database db = HostApplicationServices.WorkingDatabase;
  26.     ObjectId entId;
  27.     using (Transaction trans = db.TransactionManager.StartTransaction())
  28.     {
  29.         BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId,
  30.             OpenMode.ForRead);
  31.         BlockTableRecord btr = (BlockTableRecord)trans.GetObject
  32.             (bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
  33.         entId = btr.AppendEntity(ent);
  34.         trans.AddNewlyCreatedDBObject(ent, true);
  35.         trans.Commit();
  36.     }
  37.     return entId;
  38. }

ko34sk1sesh.JPG

ko34sk1sesh.JPG

回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2009-5-20 09:38:00 | 显示全部楼层
对3d的东西一向不太熟悉,相信各位朋友也一样,
但在AutoCad不断加强3d功能的现在,确实应该引起重视
也希望ahlzl斑竹多发一些相关的东西,:)
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2011-2-12 20:46:00 | 显示全部楼层
紧急求助,需要一个VBA的例子,请ahlzl 斑竹不吝赐教呀!!!
回复

使用道具 举报

4

主题

9

帖子

2

银币

初来乍到

Rank: 1

铜币
25
发表于 2015-9-12 20:52:00 | 显示全部楼层

直接loft的天圆地方实际做钣金是做不出来的,我把它分成4个三角面,4个曲面,组合出来,这样就和实际钣金做出来的一样了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 10:31 , Processed in 0.380493 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表