明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3746|回复: 9

[求助]如何去掉图像的边框?

[复制链接]
发表于 2010-7-26 16:06:00 | 显示全部楼层 |阅读模式
 

AutoCAD2007 + Visual C# 2005



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

AutoCAD 菜单中有“修改”->“对象”->“图像”->“边框”,可以设置图像边框的有无。

命令行中也可以设置:imageframe

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

问题是如何在C#中设置,用代码实现,可以用类似VBA中的SendCommand的函数发送CAD系统命令吗?

或者有其他方法?这个好像跟RasterImage、RasterImageDef对象关系不大。。。


发表于 2010-7-26 16:12:00 | 显示全部楼层
RasterVariables.ImageFrame Property
 楼主| 发表于 2010-7-26 16:59:00 | 显示全部楼层

回复:(lzh741206)RasterVariables.ImageFrame Prop...

在代码中加了两行代码
  1.                         RasterVariables rV = new RasterVariables();
  2.                         rV.ImageFrame = FrameSetting.ImageFrameOff;
复制代码
为什么还是没反应
发表于 2010-7-26 17:01:00 | 显示全部楼层

RasterVariables是保存在字典里的,我记得是这样

 楼主| 发表于 2010-7-26 17:16:00 | 显示全部楼层
 老大,可以说细点不?

找了半天也没找到该在哪里设置。。。
 楼主| 发表于 2010-7-26 17:24:00 | 显示全部楼层

回复:(lzh741206)RasterVariables是保存在字典里的...

  老大,可以说细点不?

找了半天也没找到该在哪里设置。。。
发表于 2010-7-26 19:50:00 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2010-7-26 21:49:00 | 显示全部楼层

回复:(lzh741206)[upload=jpg]UploadFile/2010-7/2...


汗!老大太高深了。。我无从下手啊


看这张图上确实RasterVariables在Dictionary中

但我不知道怎么将字典和RasterVariables中的ImageFrame联系起来(现在还不清楚字典、id、块这些概念,原谅我的无知吧)

我的插入栅格图像中的关于字典的代码是这样的,
  1.                 Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
  2.                 Autodesk.AutoCAD.DatabaseServices.ObjectId imgDictID = RasterImageDef.GetImageDictionary(db);
  3.                 //Write the dictionary
  4.                 DBDictionary imgDict;
  5.                 imgDict = (DBDictionary)t.GetObject(imgDictID, OpenMode.ForWrite);
  6.                 Autodesk.AutoCAD.DatabaseServices.ObjectId rasterDefID;
  7.                 String name = RasterImageDef.SuggestName(imgDict, fName);
  8.                 if (!imgDict.Contains(name))
  9.                 {
  10.                     rasterDefID = imgDict.SetAt(name, rasterDef);
  11.                 }
  12.                
  13. ///////////////////////////////
复制代码
应该怎么设置RasterVariables的ImageFrame呢?看了imgDict下的各种函数,好像没有跟RasterVariables联系起来的呢?难道是SetAt?它返回的是id啊
发表于 2010-7-26 22:32:00 | 显示全部楼层

http://forums.autodesk.com/t5/NET/How-to-set-Imageframe-variable/m-p/2594971/highlight/true#M16785

不过,似乎效果也不好

实在不行就发命令吧,严格的讲ImageFrame是系统变量,但试了设置系统变量也不行

 楼主| 发表于 2010-7-27 09:09:00 | 显示全部楼层

回复:(lzh741206)http://forums.autodesk.com/t5/N...

  1.         public void ImageFrame()
  2.         {
  3.             Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
  4.             Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;
  5.             using (Transaction t = tm.StartTransaction())
  6.             {
  7.                 DBDictionary dict = tm.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead) as DBDictionary;
  8.                 RasterVariables rasterVars;
  9.                 string kImageVars = "ACAD_IMAGE_VARS";
  10.                 if(dict.Contains(kImageVars))
  11.                 {
  12.                     ObjectId rastVarsId = dict.GetAt(kImageVars);
  13.                     rasterVars = tm.GetObject(rastVarsId,OpenMode.ForWrite) as RasterVariables;
  14.                     
  15.                 }
  16.                 else
  17.                 {
  18.                     rasterVars = new RasterVariables();
  19.                     dict.UpgradeOpen();
  20.                     dict.SetAt(kImageVars,rasterVars);
  21.                     tm.AddNewlyCreatedDBObject(rasterVars,true);
  22.                   
  23.                 }
  24.                 rasterVars.ImageFrame = FrameSetting.ImageFrameOff;
  25.                 t.Commit();
  26.                     
  27.             }
  28.         }
这是我修改成的C#的代码,运行之后发现ImageFrame的值确实改了,用自带命令“IMAGEFRAME”也可以看到其值是0,也就是边框关掉了,
但是边框还是在图上显示得好好的!还是不行!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 22:49 , Processed in 0.160328 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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