forverd 发表于 2018-8-13 11:11:58

能否使用vs工具给予com技术开发cad

一直有个问题很好奇,觉得.net的api过于复杂,同时我对性能要求也不高
所以,能否使用vs工具基于cad的com技术开发cad

如果可以,大概要怎么操作,或者查询什么资料

谢谢!!

qwh923820 发表于 2018-8-13 15:17:54

.net是面向对象,类型C++之类的,语法结构有部分类似VB,但绝不是VB,而且区别很大,VB属于基础过程类语言,VB.net是比VB更高级一点。如果你习惯了VB编程,还是用VB吧,.net编的文件更大

1005100717 发表于 2018-8-13 16:19:22

本帖最后由 1005100717 于 2018-8-13 16:21 编辑

vb.net基于com对cad二次开发的话,用的API就是VBA的api。但是有一点,你想脱离版本限制的话就不能引用CAD的支持库,要把所有的对象设为 object。
vb.net是没有ThisDrawing对象的,你在程序运行的最开始需要获取CAD的com通讯对象
acadAPP = GetObject(, "autocad.application")
然后用acadApp.ActiveDocument 代替ThisDrawing。其他的跟VB应该是一致的,当然语法肯定有区别。
vb能做的vb.net也能做,vb.net能做的,vb不一定能做。自个取舍吧。

forverd 发表于 2018-8-13 17:23:15

1005100717 发表于 2018-8-13 16:19
vb.net基于com对cad二次开发的话,用的API就是VBA的api。但是有一点,你想脱离版本限制的话就不能引用CAD的 ...

如果使用com接口的话,有必要使用官网里说的vs的版本和cad的版本对应吗

1005100717 发表于 2018-8-13 17:52:01

forverd 发表于 2018-8-13 17:23
如果使用com接口的话,有必要使用官网里说的vs的版本和cad的版本对应吗

不需要的 。com本身就是脱离的。

forverd 发表于 2018-8-14 09:05:15

1005100717 发表于 2018-8-13 17:52
不需要的 。com本身就是脱离的。

好的谢谢,如果我要开发相对于08的cad的要调用哪个库文件

1005100717 发表于 2018-8-14 16:09:27

forverd 发表于 2018-8-14 09:05
好的谢谢,如果我要开发相对于08的cad的要调用哪个库文件

在项目上右键——添加引用,切换到com页面,找到2008

forverd 发表于 2018-8-14 20:25:39

1005100717 发表于 2018-8-14 16:09
在项目上右键——添加引用,切换到com页面,找到2008

已解决,你这个还少一个common 17.0的那个

nslove44202489 发表于 2018-8-25 18:29:54

这个功能有的,application下有个acadapplication就是返回com对象的接着再activdocument就是thidrawing了

nslove44202489 发表于 2018-8-26 09:40:06

Imports Autodesk.AutoCAD.Interop.Common
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Runtime

Public Class NewClass
        Public ReadOnly ThisDrawing As AcadDocument=Ctype(Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication,AcadApplication).ActiveDocument
       
        <CommandMethod ("AddLine")>Public Sub Mycmd()
                ThisDrawing.Utility.Prompt("Hello World")
        End Sub
End Class
页: [1]
查看完整版本: 能否使用vs工具给予com技术开发cad