乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 99|回复: 5

视口-匹配标准比例和注释比例

[复制链接]

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2017-6-8 16:37:14 | 显示全部楼层 |阅读模式

u3rynd0aqme.png

u3rynd0aqme.png


tcudsbunapc.png

tcudsbunapc.png

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2017-6-9 09:47:21 | 显示全部楼层
我认为杰夫是对的。可以设置注释性比例,但不能设置视口的注释性特性。这个异常告诉你它还没有实现。因此...你不能用它。
回复

使用道具 举报

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2017-6-9 10:52:29 | 显示全部楼层
起初我只有vp.AnnotationScale=aaa,但仅此一项就给了我一个例外。
见图片。
(在现有注释量表中发现了aaa)
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2017-6-13 10:43:18 | 显示全部楼层
我刚刚做了一个快速测试,它对我有用,我设置了视口。AnnotationScale to Database.CannoScale
回复

使用道具 举报

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2017-6-14 20:48:07 | 显示全部楼层
我还尝试了从我在contextManager中找到的注释比例设置它,它起作用了。我尝试设置一个已经是数据库居民的视口,也许可以试试?私有静态IntPtr ptrViewport=RXObject.GetClass(typeof(Viewport))。UnanalyedObject;。
[命令方法("VpAnnoScale",CommandFlags.NoTileMode)]。
公共无效VpAnnoScale()。
{。
var选项=new PromptEntityOptions("\n选择ViewPort或其边界");。
options.SetRejectMessage("\nSelect ViewPort");。

options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Viewport), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Circle), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Polyline), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Polyline2d), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Polyline3d), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Ellipse), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Region), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Spline), false);。
options.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Face), false);。

ObjectId vpId=ObjectId.Null;。
同时(vpId==ObjectId.Null)。
{。
PromptEntityResult acSSPrompt=Ed.GetEntity(选项);。

如果(acSSPrompt.Status!=PromptStatus.OK)。
{。
返回;。
}。

vpId=acSSPrompt.ObjectId;。
如果(vpId.ObjectClass.UnmanagedObject!=ptrViewport)。
{。
vpId=LayoutManager.Current.GetNonRectangularViewportIdFromClipId(vpId);。
}。
}。


使用(var temp=new TemporarySystemVariables(){CMDECHO=false, ATTDIA=false})。
{。
使用(Transaction trx=Doc.TransactionManager.StartTransaction())。
{。
视图vp=vpId.GetEntity(OpenMode.ForWrite);。
//vp.AnnotationScaleDb.Cannoscale。

ObjectContextManager ocm=Db.ObjectContextManager;。
ObjectContextCollection occ=ocm.GetContextCollection("ACDB_ANNOTATIONSCALES");。
foreach(occ中的var Objcon)。
{。
if(objcon.Name.StartsWith("1/8"))。
{。
vp.AnnotationScale=(AnnotationScale)Objcon;。
}。
}。
trx.Commit();。
}。



}。
}。


回复

使用道具 举报

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2017-6-14 21:14:37 | 显示全部楼层
谢谢你杰夫!!你是对的,它需要首先在数据库中。就像这样,它工作正常:btr.AppendEntity(dTxt);。
tr.AddNewlyCreatedDBObject(dTxt,true);。
btr.AppendEntity(vp);。
tr.AddNewlyCreatedDBObject(vp,true);。
vp.On=true;。

vp.AnnotationScale=aaa;。

tr.Commit();。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 14:00 , Processed in 0.312707 second(s), 78 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表