欢迎转载,但请注明出处,谢谢!
原文:
http://through-the-interface.typepad.com翻译:才鸟(
http://www.objectarx.net)
在本贴中,我们来看一下只有AutoCAD2008才有的一个功能——给图形添加一个新的缩放比例。下一篇将会讨论如何用编程的方式添加一个比例来让一个实体可以被缩放。
首先,我应该解释一下究竟什么是缩放比例特性……
下面是AutoCAD 2008在线帮助中一个快速的预览:
被用于缩放图形的对象有一个缩放的属性。这个属性让你可以自动化比例缩放的过程,这样就可以在图纸上打印或显示正确的尺寸。
除了可以在不同的层上以不同的尺寸创建多外缩放比例,你还可以按对象或样式来打开缩放属性,并为布局或模型视口设置缩放比例。缩放比例控制缩放对象相对于图形中的模型几何体的尺寸。
下面的对象可以用于缩放图形并包含缩放属性:
文本
标注
填充
公差
多引线
块
属性
当这些对象的缩放属性被打开后(设置成是),这些对象被称为缩放对象。
下面是一些C#的代码,用来创建一个新的缩放比例并在AutoCAD的当前图形中加入它:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace AnnotationScaling
{
public class Commands
{
[CommandMethod("AS")]
static public void addScale()
{
Document doc =
Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
try
{
ObjectContextManager cm =
db.ObjectContextManager;
if (cm != null)
{
// 现在获取缩放比例内容集合
// (名字为ACDB_ANNOTATIONSCALES_COLLECTION)
ObjectContextCollection occ =
cm.GetContextCollection("ACDB_ANNOTATIONSCALES");
if (occ != null)
{
//创建一个新的比例内容
AnnotationScale asc = new AnnotationScale();
asc.Name = "MyScale 1:28";
asc.PaperUnits = 1;
asc.DrawingUnits = 28;
//把它加入到图形的内容集合中
occ.AddContext(asc);
}
}
}
catch (System.Exception ex)
{
ed.WriteMessage(ex.ToString());
}
}
}
}
下面是这个新的缩放比例,运行完代码后,从属性面板中手动选择的结果:
在下一个帖子中,我们将讨论如何用编程的方式,通过设置一个对象的缩放属性和缩放比例来让它可以被缩放。