20033535 发表于 2010-9-18 12:06:00

[求助]如何移动Hatch

本帖最后由 作者 于 2010-9-18 19:25:50 编辑 <br /><br /> <div>对于图形中类型为Autodesk.AutoCAD.DatabaseServices.Hatch 的对象,怎么移动它?Origin属性一直都是(0,0)。</div><div>是不是要重新获取Hatch的边界,然后在新的位置上重画Hatch?</div><div>有没有变通的办法直接移动Hatch啊?</div>

caiqs 发表于 2010-9-18 16:34:00

TransfromBy不行?

20033535 发表于 2010-9-18 18:20:00

<div>如何获得Hatch的当前坐标?</div>如何用TransfromBy 移动Hatch到任意坐标啊?<div><font class="Apple-style-span" color="#555555" face="Arial, Helvetica, sans-serif" size="4"><br/></font></div>

雪山飞狐_lzh 发表于 2010-9-19 07:44:00

<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void Move(Entity ent, Point3d start, Point3d end)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ent.TransformBy(Matrix3d.Displacement(end - start));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>

20033535 发表于 2010-9-19 10:43:00

那么Hatch的插入点/中心点怎么获取呢?<br/><div><strong>Origin</strong>属性一直都是(0,0)</div>

雪山飞狐_lzh 发表于 2010-9-19 11:48:00

Hatch的<strong>Origin</strong>属性并没有实现

20033535 发表于 2010-9-19 11:54:00

那么怎么获取Hatch的插入点/中心点/定位点呢?<div>只要知道该Hatch中的一个点就可以了。</div><div>我要移动Hatch,但是无法获取Hatch的定位点。</div>

20033535 发表于 2010-9-19 12:26:00

我自己的解决办法://p3dmin_newp3d为Hatch将要移动到的坐标 Extents3d ext3d = hatch.GeometricExtents; Point3d p3dmin = ext3d.MinPoint; hatch.TransformBy(Matrix3d.Displacement(p3dmin_newp3d - p3dmin));这样能解决问题,但是我感觉用GeometricExtents的MinPoint与MaxPoint并不能真是反映Hatch的实际位置,起码要用HatchLoop获取的边界的中心位置才对。另一个变通的办法是用GeometricExtents的MinPoint与MaxPoint,取其中点。
无论如何,用MinPoint与MaxPoint都是那么不尽人意啊。
求更好的解决办法?

caiqs 发表于 2010-9-19 13:25:00

<p>为什么一定要 获取Hatch的插入点/中心点/定位点呢?,不要这几个点就不能移动了?</p>
<p>参考cad的move命令,先提示一点用作移动的起点,再提示一点,这时是按这两个点的变换矩阵来移动图形的,</p>
<p>&nbsp;</p>
<p>这两个点可以是任意选取的,只要移动后是你要的效果就行</p>

20033535 发表于 2010-9-19 16:37:00

我要移动大量的Hatch,在不与用户交流的情况下移动。<div>对于每一个需要移动的Hatch,移动的向量不一定一样。</div><div>这样就没法用cad的move命令了。</div>
页: [1] 2
查看完整版本: [求助]如何移动Hatch