乐筑天下

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

SetOrMakeLAYOUT和Zoom Ext

[复制链接]

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2017-5-15 00:41:05 | 显示全部楼层 |阅读模式
Ref:https://forums.autodesk.com/t5/net/set-new-layout-to-zoom-extents-in-c/m-p/7081775#U7081775在这里发布更好的代码窗格质量概念证明代码,using System;。
使用Autodesk.AutoCAD.Runtime;。
使用Autodesk.AutoCAD.DatabaseServices;。
使用Autodesk.AutoCAD.EditorInput;。
using CadApp = Autodesk.AutoCAD.ApplicationServices.Core.Application;。

[assembly: CommandClass(typeof(KdubServices.Test0315.MyCommands))]。

命名空间 KdubServices.Test0315。
{。
公共类 MyCommands。
{。
[命令方法(“kb_SetOrMakeLAYOUT”)]。
公共无效kb_SetOrMakeLAYOUT()。
{。
var doc = CadApp.DocumentManager.MdiActiveDocument;。
var db = doc.数据库;。

var pso = new PromptStringOptions(“\nEnter the layout name: ”);。
var pr = doc.Editor.GetString(pso);。
如果(pr.Status != PromptStatus.OK) // 。
返回;。

var name = pr.StringResult; 。


using (var tr = db.TransactionManager.StartTransaction()){。
// 作弊在这里 : 。
// 同时使用 LayoutManager 和 Dictionary。

引用布局管理器。
var lmc = LayoutManager.Current;。

获取当前数据库的布局字典。
var layouts = (DBDictionary) tr.GetObject(db.LayoutDictionaryId, OpenMode.ForRead);。

获取或创建布局。
var layoutId = layouts,包含(名称) ?布局,GetAt(name) : lmc.CreateLayout(name);。

设置命名的布局当前 ( 活动 )。
lmc.CurrentLayout = name;。

打开布局。
var layout = (Layout) tr.GetObject(layoutId, OpenMode.ForRead);。

输出布局信息演示:。
医生,Editor.WriteMessage($“\nTab Order: {layout.TabOrder}“ +。
$“\n选项卡 选定:{布局,选项卡选择}“ +。
$“\nBlock Table Record ID: {layout.BlockTableRecordId}”。
);。

缩放至布局范围。
医生,SendStringToExecute(“._zoom _extents”, true, false, false);。
断续器Commit();。
}。
}。
}。
}。


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

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

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2017-5-15 00:58:21 | 显示全部楼层
不错的kdub,
SendStringToExecute
也是我的第一个想法。这感觉像是一个黑客,但它的工作...
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2017-5-15 01:05:42 | 显示全部楼层
谢谢蒂姆,这是一个黑客,是的...但有效// - 添加了PromptStatus检查:    if(pr。地位!=提示状态,好)//。
返回;。

var name = pr,StringResult。
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2017-5-15 01:27:49 | 显示全部楼层

有一种方法可以让AutoCAD中的“最后一个命令”功能忽略缩放命令
...但我想不起是什么了。
有人吗??...
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2017-5-26 00:16:59 | 显示全部楼层
有点跑题抱歉,但我发现了.SendStringToExecute 在一种情况下比 ed.command 工作得更好。
我喜欢2017年的矩形revcloud和.SendStringToExecute将允许我使用它,而相同的字符串不会与ed.command一起使用。
然后,我可以开始命令使用正确的图层,并结束命令它将日期和注释添加到标题栏。这就像ed.command只使用2015 cad
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 13:49 , Processed in 0.150698 second(s), 62 queries .

© 2020-2025 乐筑天下

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