乐筑天下

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

使用编辑器。更改对象空间的命令。

[复制链接]

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2016-8-19 09:38:31 | 显示全部楼层 |阅读模式
我正在尝试将一些对象从模型空间移动到纸质空间。当我使用编辑器时,我会得到一个eInvalidInput。命令自动执行CHSPACE命令。我在命令中输入什么并不重要,它总是会出错。我不确定我做错了什么
这是我正在处理的代码片段。代码运行时我已经在文件空间了
公共类维度添加策略:IDimensionAdderStrategy
{
公共void AddDimensions(列出
尺寸线)
{
使用(Transaction tr=Active.Database.TransactionManager.StartTransaction())
{
BlockTableRecord ms=Active.Database.ModelSpace(OpenMode.ForWrite)
ObjectId[]维度=新的ObjectId[dimensionLines.Count]
int-index=0
foreach(尺寸线中的尺寸线)
{
旋转维度旋转维度=新旋转维度()
双角度=X轴的角度(dimensionLine.Start,dimensionLine.End)
旋转维度。XLINE1点=尺寸线。开始
旋转维度。XLine2Point=尺寸线。结束
旋转维度。旋转=角度
旋转维度。DimLinePoint=PolarPoint(尺寸线端点,角度+数学π/2,尺寸线偏移)
旋转维度。DimensionStyle=Active.Database.DimStyleTableId
维度[索引]=ms.AppendEntity(旋转维度)
tr.addnewlyCreatedBobObject(旋转维度,true)
index++
}
tr.Commit()
SelectionSet-SelectionSet=SelectionSet.fromObjectId(维度)
是活动的.Editor。命令(“MSPACE”、“selectionSet”、“CHSPACE”和“)
}
}
私有双角度自X轴(点3D开始,点3D结束)
{
返回新矢量2d(end.X-start.X,end.Y-start.Y)
}
公共点3D极化点(点3D基点、双角度、双偏移)
{
返回新的点3d(基点X+(偏移量*Math.Cos(角度)),即基点。Y+(偏移量*Math.Sin(角度)),基点Z)
}
}

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

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

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2016-8-19 10:54:40 | 显示全部楼层
在不运行它的情况下,我认为您不需要传递"",直到命令
Active.Editor.Command("MSPACE", seltionSet,"CHSPACE", "");
Gile对传递autocad命令有很好的描述。
https://www.theswamp.org/index.php?topic=49124.0
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2016-8-19 11:43:59 | 显示全部楼层
我想我不够清楚。
Active.Editor.Command(“MSPACE”);
给出完全相同的错误。
我正在使用AutoCAD 2016,但它在2015年也做了同样的事情。
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

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

铜币
361
发表于 2016-8-19 12:04:11 | 显示全部楼层
15+更改了命令的运行方式,这取决于您是否拥有所有参数或所需的输入。从臀部开始,您可能需要拆分这两个命令并让用户选择活动的视口。命令MSPACE不会从唯一的命令开始和停止,因此我认为eInvalidInput是从哪里来的。等待Active.Editor.CommandAsync("_. MSPACE",Active.Editor.PauseToken,Active.Editor.PauseToken);。
Active.Editor.Command("_. CHSPACE",选择集);。
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

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

铜币
361
发表于 2016-8-19 12:39:05 | 显示全部楼层
其他对我不起作用的命令,Active.Editor.Command("QSAVE");。
Active.Editor.Command(视图);。
etc, etc. ParamArray中放置什么并不重要,它总是给出eInvalidInput,这是我第一次尝试使用API,我一定没有正确设置某些内容,我引用了3个标准dlls,应该有另一个吗?在这一点上,我正在考虑自己将维度转换为文件空间。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2016-8-20 01:10:21 | 显示全部楼层
你是在什么背景下打电话的?我认为如果从应用程序上下文中调用,它会抛出错误。.........我刚刚做了一个快速测试,在文档上下文中工作,并从应用程序上下文中抛出了einvalidinput错误。   [command method(" ThrowErrorMSPACE ",CommandFlags。会话)]。
public void ThrowErrorMSPACE()。
{。
Ed,command(" MSPACE ");。
}。
[command method(" successful space ")]。
public void successful space()。
{。
Ed,command(" MSPACE ");。
}。

回复

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2016-8-20 01:41:10 | 显示全部楼层
出于好奇,您有什么理由想使用 Editor.Command() 代替克隆?
http://spiderinnet1.typepad.com/blog/2014/03/autocad-net-move-entity-from-model-space-to-paper-space.html
干杯
回复

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2016-8-20 05:32:13 | 显示全部楼层
Jeff,我已经
有一段时间没有做过任何.Net编码了,所以我只是猜测。 如果在调用调用 sessions 命令标志的代码中的命令之前锁定文档,是否会有所不同?
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2016-8-20 09:11:33 | 显示全部楼层
嘿,蒂姆,
我试了一下,还是出错了
[CommandMethod(“TryDocLockMSPACE”,CommandFlags.Session)]
公共void TryDocLockMSPACE()
{
使用(DocumentLock docloc=Doc.LockDocument())
{
Ed.Command(“MSPACE”)
}
}

回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

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

铜币
361
发表于 2016-8-20 12:29:21 | 显示全部楼层
值得一试杰夫
这就是我的设想,因此如果代码有问题,我无法指出会出现什么问题<哦,好吧。感谢您尝试并发回。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 16:46 , Processed in 0.158043 second(s), 72 queries .

© 2020-2025 乐筑天下

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