乐筑天下

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

[编程交流] 获取图形属性externa

[复制链接]

10

主题

23

帖子

20

银币

初来乍到

Rank: 1

铜币
44
发表于 2022-7-6 22:33:30 | 显示全部楼层 |阅读模式
你好:
 
在这里度过了一上午的大部分时间http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer's%20指南/索引。html和无处可去,我张贴这个线程。
 
我试图指向AutoCAD图形,并从中获取一些系统变量信息,以应用于外部SQL Server数据库。代码非常简单,如下所示:
 
  1. [font=Courier New]GetInternalACADData(fil)[/font]

 
fil是文件名及其完整路径。当我运行代码时(我将在最后展示),我得到一个未处理的FileNotFoundException-找不到指定的模块。(HRESULT的例外:0x8007007E)。奇怪的是,在后续代码中尝试执行有关文件的任何操作之前,就会发生此错误:
 
  1. [size=2][color=#0000ff][size=2][color=#0000ff][font=Courier New]Imports[/font][/color][/size][/color][/size][size=2][font=Courier New] Autodesk.AutoCAD.ApplicationServices[/font][/size]
  2. [size=2][color=#0000ff][size=2][color=#0000ff][font=Courier New]Imports[/font][/color][/size][/color][/size][size=2][font=Courier New] Autodesk.AutoCAD.DatabaseServices[/font][/size]
  3. [size=2][color=#0000ff][size=2][color=#0000ff][font=Courier New]Imports[/font][/color][/size][/color][/size][size=2][font=Courier New] Autodesk.AutoCAD.EditorInput[/font][/size]
  4. [size=2][color=#0000ff][size=2][color=#0000ff][font=Courier New]Imports[/font][/color][/size][/color][/size][size=2][font=Courier New] Autodesk.AutoCAD.Runtime[/font][/size]
  5. [size=2][color=#0000ff][size=2][color=#0000ff][font=Courier New]Module[/font][/color][/size][/color][/size][size=2][font=Courier New] ACAD_Functions[/font][/size]
  6. [font=Courier New][size=2][color=#0000ff][size=2][color=#0000ff]  Public[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size][/color][/size][size=2] GetInternalACADData([/size][size=2][color=#0000ff][size=2][color=#0000ff]ByVal[/color][/size][/color][/size][size=2] fil [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]String[/color][/size][/color][/size][/font][size=2][font=Courier New])[/font][/size]
  7. [font=Courier New][size=2][color=#0000ff][size=2][color=#0000ff]      Dim[/color][/size][/color][/size][size=2] acCurDb [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] Database = [/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] Database([/size][size=2][color=#0000ff][size=2][color=#0000ff]False[/color][/size][/color][/size][size=2], [/size][size=2][color=#0000ff][size=2][color=#0000ff]True[/color][/size][/color][/size][/font][size=2][font=Courier New])[/font][/size]
  8. [size=2][font=Courier New]      acCurDb.ReadDwgFile(fil, System.IO.FileShare.Read, [/font][/size][font=Courier New][size=2][color=#0000ff][size=2][color=#0000ff]True[/color][/size][/color][/size][size=2], [/size][size=2][color=#a31515][size=2][color=#a31515]""[/color][/size][/color][/size][/font][size=2][font=Courier New])[/font][/size]
  9. [font=Courier New][size=2][color=#0000ff][size=2][color=#0000ff]      Dim[/color][/size][/color][/size][size=2] strString [/size][size=2][color=#0000ff][size=2][color=#0000ff]As [/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]String[/color][/size][/color][/size][/font][size=2][font=Courier New] = acCurDb.Tdupdate.ToString[/font][/size]
  10. [font=Courier New][size=2][color=#0000ff][size=2][color=#0000ff]  End[/color][/size][/color][/size][/font][size=2][color=#0000ff][size=2][color=#0000ff][font=Courier New]Sub[/font][/color][/size][/color][/size]
  11. [size=2][color=#0000ff][size=2][color=#0000ff][font=Courier New]End[/font][/color][/size][/color][/size][font=Courier New][size=2][color=#0000ff][size=2][color=#0000ff]Module[/color][/size][/color][/size][/font]

 
如果您对此有任何想法,以及关于使用AutoCAD API的任何其他信息,请告诉我。
 
非常感谢。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 22:52:46 | 显示全部楼层
尝试像这样将类添加到项目中
只需在接下来的3行中更改项目名称和类名:
  1. <Assembly: CommandClass(GetType([color=red]MyProject.MyClass[/color]))>
  2. Namespace [color=red]MyProject[/color]
  3. Public Class [color=red]MyClass[/color]

 
更改代码中的文件名:
 
  1. Imports Autodesk.AutoCAD.ApplicationServices
  2. Imports Autodesk.AutoCAD.DatabaseServices
  3. Imports Autodesk.AutoCAD.Runtime
  4. Imports Autodesk.AutoCAD.EditorInput
  5. Imports Autodesk.AutoCAD.Geometry
  6. <Assembly: CommandClass(GetType(MyProject.MyClass))>
  7. Namespace MyProject
  8. Public Class MyClass
  9. <CommandMethod("ReadFileTest", "rft", CommandFlags.Session Or CommandFlags.Modal)> _
  10. Public Sub TestInternalData()
  11. GetInternalACADData([color=red]"C:\Test\WorkingDrawing.dwg"[/color])
  12. End Sub
  13. Public Sub GetInternalACADData(ByVal fil As String)
  14. Dim acCurDb As Database = New Database(False, True)
  15. acCurDb.ReadDwgFile(fil, System.IO.FileShare.Read, True, "")
  16. Dim strString As String = acCurDb.Tdupdate.ToString
  17. acCurDb.CloseInput(True)
  18. acCurDb.Dispose()
  19. MsgBox(strString)
  20. End Sub
  21. End Class
  22. End Namespace

 
~'J'~
回复

使用道具 举报

10

主题

23

帖子

20

银币

初来乍到

Rank: 1

铜币
44
发表于 2022-7-6 22:57:11 | 显示全部楼层
谢谢,但是没有帮助。无论如何,这个类已经在它自己的模块中了。我想知道DLL没有正确映射是否有问题,尽管我可以在Windows 7-64位和Windows XP-32位中产生错误botn。
 
这些进口产品都很好用。我用于AutoCAD 2010的文件引用是acdbmgd。dll和acmgd。dll。不确定这是否正确,尽管我在某处读到它是正确的。可能有一个问题,我需要更多的dll的依赖。如果你知道那些可能是什么,请告诉我。
 
再次感谢!
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 23:11:05 | 显示全部楼层
对不起,朋友,
我对这个问题一无所知
也许其他人会更好地解释你
我担心我英语不好,会把你引向错误的方向
 
当做
 
~'J'~
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 23:16:33 | 显示全部楼层
该线程的描述“从外部获取图形属性–问题”的确切含义是什么?我问的原因是一个外部。NET exe必须使用不同的工具集与AutoCAD交互。NET dll在AutoCAD中运行。
 
在调试期间,exe可能会立即引发异常,类似于您所描述的。
回复

使用道具 举报

10

主题

23

帖子

20

银币

初来乍到

Rank: 1

铜币
44
发表于 2022-7-6 23:28:49 | 显示全部楼层
那么,我应该使用什么参考文献呢?这是因为intellisense功能强大,可以显示所有系统变量以及人们希望在AutoCAD中看到的其他内容?
 
目前,我正在使用acdbmgd和acmgd,我需要的导入似乎可以工作。是否需要更多的参考资料,或者这些是错误的?
 
谢谢
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 23:39:01 | 显示全部楼层
下图显示了从外部EXE访问AutoCAD所需的参考。截图是在我在Visual Studio 2010中打开此线程第17页的解决方案文件时捕获的(实际上,一些参考必须从该附件中更新)。
 
 
 
http://www.cadtutor.net/forum/showthread.php?39166

                               
登录/注册后可看大图
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 05:52 , Processed in 0.340729 second(s), 66 queries .

© 2020-2025 乐筑天下

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