乐筑天下

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

复制Civil 3d标签样式

[复制链接]

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2016-5-14 02:11:40 | 显示全部楼层 |阅读模式
你好...你会帮我吗?我想复制civil 3d标签样式,并将其命名为其他名称。我原以为这行得通,但事实并非如此。使用(Transaction trans = database,transaction manager . start transaction())。
{。

ObjectId line label style = active document,styles . Label styles . generalinelabelstyles[" _ Line Label "];。
label style pSt = line label style,GetObject(OpenMode,ForRead)作为LabelStyle。

for(int I = 0;i 。
{。
LabelStyle chSt = trans,GetObject(pSt,OpenMode。ForRead)作为LabelStyle。
chSt,Name = myexpname。
chSt,ExportTo(数据库,Autodesk。civil . styleconflictresolvertype . override);。

} 。
运输,commit();。
}。

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

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

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2016-5-14 09:12:28 | 显示全部楼层
欢迎来到沼泽,互联网浏览器!正如您所发现的,您无法导出到样式所在的同一数据库。从 ExportTo() 的帮助:System.InvalidOperation当前样式与目标数据库位于同一数据库中时引发异常。
Style对象具有CopyAsSibling()方法,但我不认为这将适用于复制标签样式,它是子...您可能还想包括孩子的孩子.... 我可能会做的是创建一个侧面数据库,使用SportTo(theSideDb),重命名那里的样式,然后将 ExportTo(currentDb) 从该侧数据库重新命名为当前 dwg。然后丢弃侧 db。
实际上,我还没有尝试过这个,但也许CopyAsSibling()方法会复制样式和它的子级。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-5-14 15:08:37 | 显示全部楼层
非常感谢你!我试试看
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-5-14 15:33:11 | 显示全部楼层

这行得通。再次感谢您。
mylabelstyle.CopyAsSibling(newname);
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-5-14 17:48:49 | 显示全部楼层
现在我已经复制了样式,我正在尝试更改其中一个属性字段。不确定为什么我的尝试不起作用:foreach(ObjectId id innewlabel.GetComponents(LabelStyleComponentType.Text))。
{。
尝试。
{。
LabelStyleTextComponent组件=id.GetObject(OpenMode.ForWrite)作为LabelStyleTextComponent;。
if(component.Name.ToUpper(),包含(myexpname.ToUpper ()))。
{。
component.Text.Contents.Value = "";。
}。
}。
捕捉。
{。
}。

回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2016-5-14 18:07:57 | 显示全部楼层
耶!没有关系。我不知道文本组件和参考文本组件是分开的。我成功了。再次感谢杰夫
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2016-5-14 18:50:00 | 显示全部楼层
下面的代码似乎不起作用。有什么想法吗?与2014 Civil 3d合作。它确实会影响值,但与我想要的不匹配。 如果我输入0,该值将显示零。当我输入0.1时,值最终为1.2。我似乎正在皈依脚。当我使用5时,它将值更改为60。疯狂:/
组件。Text.XOffset.Value = 0.1;
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2016-5-14 20:11:42 | 显示全部楼层
我以前没有尝试过在代码中编辑这些,但是根据你所说的,这听起来和使用表达式定义文本高度是一样的。这些也需要除以12才能正确显示。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-5-14 21:28:01 | 显示全部楼层

这很奇怪,但是如果您想要您的值为0.1,则需要将值设置为1/12,正如Jeff在上面提到的那样。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 18:49 , Processed in 0.244026 second(s), 70 queries .

© 2020-2025 乐筑天下

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