明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2632|回复: 6

[已解决]wipeout.SetFrom用法,请教

[复制链接]
发表于 2009-10-30 10:32:00 | 显示全部楼层 |阅读模式
不知道为什么wipeout.SetFrom(Point2DCollection,Vector3D)画出来的wipeout总是不对,我觉得是Vector3D这个参数设置的问题,我试着(0,0,0)、(1,1,1)都不行,怎么设置啊?请高手赐教!
发表于 2009-10-30 19:34:00 | 显示全部楼层
Vector3d.ZAxis?
 楼主| 发表于 2009-11-1 16:54:00 | 显示全部楼层
Vector3d.ZAxis,也不行!
发表于 2009-11-1 17:22:00 | 显示全部楼层
以前写的代码,另外,Vector3D这个参数设置为Vector3d.ZAxis没问题,但只能在2010版本用SetFrom
  1.         [CommandMethod("ts3")]
  2.         public static void tt3()
  3.         {
  4.             Document doc = Application.DocumentManager.MdiActiveDocument;
  5.             Editor ed = doc.Editor;
  6.             Database db = doc.Database;
  7.             using (Transaction tr = db.TransactionManager.StartTransaction())
  8.             {
  9.                 Wipeout w = new Wipeout();
  10.                 w.Orientation = new CoordinateSystem3d(new Point3d(100, 100, 0), Vector3d.XAxis, Vector3d.YAxis);
  11.                 List<Point3d> pnts = new List<Point3d>();
  12.                 pnts.Add(new Point3d(100, 100, 0));
  13.                 pnts.Add(new Point3d(800, 100, 0));
  14.                 pnts.Add(new Point3d(800, 600, 0));
  15.                 pnts.Add(new Point3d(100, 600, 0));
  16.                 pnts.Add(new Point3d(100, 100, 0));
  17.                 Matrix3d mat = w.PixelToModelTransform.Inverse();
  18.                 Point2dCollection vers = new Point2dCollection();
  19.                 for (int i = 0; i < pnts.Count; i++)
  20.                 {
  21.                     pnts[i] = pnts[i].TransformBy(mat);
  22.                     vers.Add(pnts[i].Convert2d(new Plane()));
  23.                 }
  24.                 w.SetClipBoundary(ClipBoundaryType.Poly, vers);
  25.                 BlockTableRecord btr = (BlockTableRecord)db.CurrentSpaceId.GetObject(OpenMode.ForWrite);
  26.                 btr.AppendEntity(w);
  27.                 tr.AddNewlyCreatedDBObject(w, true);
  28.                 tr.Commit();
  29.             }
  30.         }
 楼主| 发表于 2009-11-16 20:56:00 | 显示全部楼层

谢谢!着急就用_WipeOut代替了!

就是下句没用,所以不对!

Matrix3d mat = w.PixelToModelTransform.Inverse();

顺便提一下,做完消隐,用DrawOrderTable.MoveToTop把消隐的文字置上!

希望对同行朋友有帮助!也是对负责任的版主的支持!

发表于 2011-3-9 16:19:31 | 显示全部楼层
太好了,学习,顶一下
发表于 2012-9-17 11:09:42 | 显示全部楼层
雪山飞狐_lzh 发表于 2009-11-1 17:22
以前写的代码,另外,Vector3D这个参数设置为Vector3d.ZAxis没问题,但只能在2010版本用SetFrom

高手很厉害啊,解决了我遇到的难题!另外,请问大侠有没有搜索遮挡面的算法啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 17:47 , Processed in 0.180157 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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