[求助]新手求助一个有关块的问题?
本帖最后由 作者 于 2010-7-24 16:44:47 编辑我的CAD里有一个图块,请问我要如何跟据这个图块的名称来移动和旋转这个图块呢? 图块的坐标和旋转角度在软件里设定。有相关代码的朋友麻烦贴出来一下。谢谢了。类似我们更改下图中红色方框里的值一样。
lzh741206前辈的代码是可以实现旋转。但有个问题,就是这个块可不可以不用我手动选择。通过块名称来得到这个块
public static void test25()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
PromptEntityOptions opts = new PromptEntityOptions("\n请选择一个块:");
opts.SetRejectMessage("只能选择块参照");
opts.AddAllowedClass(typeof(BlockReference), false);
PromptEntityResult res = ed.GetEntity(opts);
if (res.Status != PromptStatus.OK)
return;
Database db = doc.Database;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockReference bref = tr.GetObject(res.ObjectId, OpenMode.ForWrite) as BlockReference;
bref.Position += new Vector3d(10, 10, 0);
bref.Rotation += 60 * Math.PI / 180;
tr.Commit();
}
} <p>是插入块命令Insert的效果?</p>
<p>最近的问题提的都让人伤脑筋,完全看不懂,汗</p> 不是,是图里面己经有一个块了。我想移动和旋转这个块,移动的坐标和放转的角度通过一个变量来指定。在C#里不知道要怎么实现,所以希望大家帮帮忙。 <p><font face="Verdana"><a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62519&replyID=&skin=0">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62519&replyID=&skin=0</a></font></p>
<p>如果只针对块</p>
<p>BlockReference.Position </p>
<p>BlockReference.Rotation </p> 对,我只是针对块。不知道哪位能给些代码? 你是要新建还是把现有的图块旋转?
如果是现有的
public static void test25()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
PromptEntityOptions opts = new PromptEntityOptions("\n请选择一个块:");
opts.SetRejectMessage("只能选择块参照");
opts.AddAllowedClass(typeof(BlockReference), false);
PromptEntityResult res = ed.GetEntity(opts);
if (res.Status != PromptStatus.OK)
return;
Database db = doc.Database;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockReference bref = tr.GetObject(res.ObjectId, OpenMode.ForWrite) as BlockReference;
bref.Position += new Vector3d(10, 10, 0);
bref.Rotation += 60 * Math.PI / 180;
tr.Commit();
}
}
本帖最后由 作者 于 2010-7-24 16:41:22 编辑 <br /><br />
<div><span style="FILTER: glow(color='#9898BA',strength='2'); WIDTH: 105px"><font face="Verdana" color="#da2549"><b>lzh741206</b></font>前辈的代码是可以实现旋转。但有个问题,就是这个块可不可以不用我手动选择。通过块名称来得到这个块</div></span> <p>把你的要求说清楚</p>
<p>图块是图形里现有的吗?多个一起旋转?</p>
<p>还是新建一个块并旋转</p> 图块是图形里现有的。只有一个。上面给出的代码是可以用。但需要选择那个图块之后才能旋转。我的目地是不需要选择择它就可以旋转。 <p>建议你自己先试着写下,先看看kean专题的选择集部分,以及置顶帖手册的选择集部分</p>
页:
[1]