乐筑天下

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

CP2654:使用AutoCAD®. NET API进行自动化测试

[复制链接]

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 08:10:13 | 显示全部楼层 |阅读模式
在这个主题中,我逐渐放置了一些关于这个主题标题中指向的文章的评论(用于讨论)。我感谢斯科特·麦克法兰的文章 - 这是非常有用的信息!
关于文本用红色标记:我不同意。例如,Document 可以为 null(代码中不存在此检查);此外,如果它是命令的代码,则该命令可以标记为“会话”(即文档必须锁定),因为我认为。如果我不对,请告诉我。

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

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

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 09:26:33 | 显示全部楼层
有趣,感谢您的分享。 我同意你到目前为止的评估,它有几个问题。 不知道他前言里到处都吐了什么,看起来像是慌乱地抄了起来。 此外,一些“var”语句被压在他们的分配变量上,很奇怪。
是 .是否推断出来自技术比“实体作为实体继承类”更快,后面有空检查?
编辑:假设我自己的问题,如果我们可以跳过需要打开objectid,那么它应该是一个性能提升。 如果事实证明这种技术是富有成效的,我将不得不采用它。
回复

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 09:34:23 | 显示全部楼层
我是从Word文档(文章)里抄的代码。有很多关键字被spli了出来(这是Word的格式问题)。但这对于代码的理解来说不是问题。
回复

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 09:38:19 | 显示全部楼层
在这种情况下,应注意测试。剩余的力矩是次要的。
回复

使用道具 举报

1

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
11
发表于 2014-4-3 09:57:09 | 显示全部楼层
更新:使用DerivedFrom方法(对我来说是新的,可能对这里的任何人来说都不是新的),我用150000个圆圈将处理时间减少了一半
以下是我为原作者建议的清理:
公共静态void ChangeCircleColors()
{
var document=Application.DocumentManager.MdiActiveDocument
var-database=document.database
使用(var tr=database.TransactionManager.startopEnclosureTransaction())
{
试试
{
var-circleClass=RXObject.GetClass(typeof(Circle))
var modelSpaceId=SymbolUtilityServices.GetBlockModelSpaceId(数据库)
var modelSpace=(BlockTableRecord)tr。GetObject(modelSpaceId,OpenMode.ForRead)
foreach(模型空间中的ObjectId)
{
如果(!id.ObjectClass.IsDerivedFrom(circleClass))
继续
var循环=(循环)tr。GetObject(id,OpenMode.ForWrite)
圆圈。ColorIndex=圆形。半径<1.0?2
:圆。半径>10.0?1
:3
}
tr.Commit()
}
catch(Autodesk.AutoCAD.Runtime.Exception.ex)
{
tr.Abort()
document.Editor.WriteMessage(例如Message)
}
}
}

没有解决您提到的关于文档和数据库为空的问题。一个例外也可能最终走向极端,因为他试图给一个可能不存在的编辑写信。
回复

使用道具 举报

1

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
11
发表于 2014-4-3 10:05:36 | 显示全部楼层
在我看来:这个变体很难阅读,因此可能会出现错误。
附言:我要求不要改变话题的方向
回复

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 10:08:39 | 显示全部楼层
三元用法是一件非常主观的事情。如果该方法正在做任何有意义的事情,它就不太合适。
其次,我为偏离主题道歉。我想我可能误解了你对这个线程的最初目标,可能在翻译中丢失了。
回复

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 10:37:32 | 显示全部楼层

但是在这种情况下我有一些问题:
1。我只使用远程调试(MS Visual Studio):所有的AutoCAD都位于另一台机器上,与IDE的不同。
2。远程计算机安装了多个AutoCAD:AutoCAD 2009-2015。问题:
1。如何为Gallio指定目标AutoCAD版本?Echo.exe?
2。我更喜欢在专用开发机器上安装所有开发软件(仅包含MS VS 2005-2013和SDK,不包含AutoCADs、BricsCADs、Revits等)。所以我更喜欢在这台机器上安装Gallio,而不是在我的测试机器上安装Gallio,测试机器包含CAD程序。
编译结果位于远程机器的共享文件夹中。所以这段代码加载到AutoCAD没有任何问题。但现在我想固定使用Gallio...也许我可以复制到输出目录和一些必要的Gallio的文件(例如Gallio.Echo.exe)为成功的测试?或者,尽管如此,我必须在远程机器上安装Gallio?
回复

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 11:00:19 | 显示全部楼层
我在Gallio.AutoCAD中看到了一些信息。插件文件:
  1. ...
  2.       [tr]
  3.         AutoCAD
  4.         
  5.           Runs tests within an AutoCAD process.
  6.           Supported test runner properties:
  7.           - AcadAttachToExisting: If "true" attaches to an existing AutoCAD process, otherwise starts a new one.
  8.           - AcadExePath: Specifies the full path of the "acad.exe" program.
  9.         
  10.       [/tr]
  11.    
  12. ...

我将尝试将Gallio复制到输出目录并运行它。独白结束了。
回复

使用道具 举报

2

主题

25

帖子

2

银币

初来乍到

Rank: 1

铜币
33
发表于 2014-4-3 11:01:21 | 显示全部楼层
除非我错误地阅读了Kean Walmsley的博客,否则在2015年发布之前,MdiActiveDocument不可能为空。(我很容易误解他写的东西)。
作为一个非常新手的程序员,我可能误解了这句话,但我认为这意味着在2015年之前它不可能为空,所以没有理由检查它?我读对了吗?
Kean的整篇文章可以在这个链接上阅读。http://through-the-interface.typepad.com/through_the_interface/2014/03/autocad-2015-for-developers.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+typepad%2Fwalmsleyk%2Fthrough_the_interface+%28Through+the+Interface%29
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 06:36 , Processed in 0.175364 second(s), 72 queries .

© 2020-2025 乐筑天下

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