亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

VB應用程序中用DDE功能開發AutoCADforWindows

2019-11-18 17:50:25
字體:
來源:轉載
供稿:網友
目前,許多工程CAD系統是以AutoCAD作為支撐軟件,在其基礎上進行二次開發而形成的。AutoCADR12forWindows以AutoLISP和ADS作為二次開發工具,但它們都有不足之處,AutoLISP速度慢,沒有友好的開發環境,ADS是基于C語言的開發環境,而C語言面向Windows編程本身難以掌握,因此AutoLISP和ADS的使用都受到一定的限制。VB是Windows下主要的開發工具之一,它的“可視性”和“事件驅動性”簡化了面向Windows的編程,深受廣大用戶的青睞。Windows下,VB和AutoCAD都支持強有力的DDE(動態數據交換)功能,用VB編寫具有DDE功能的程序來控制AutoCAD,既能與AutoCAD交換各種復雜的數據結構,又能向AutoCAD發送命令,由此開發出的應用程序能滿足用戶的需要,同時又縮短了開發周期。本文結合實例介紹了用VB開發AutoCAD的途徑與方法。
一、直接利用DDE功能開發

  DDE是Windows的強大功能之一,它可以使應用程序自動地接收由其它應用程序發送來的數據,當傳送端的數據有變化時,接收端的數據也會隨之改變,也可將命令或鍵盤輸入傳遞給其它程序,實現遠程控制。

  在VB編程環境中,創建應用程序的方法很簡單,首先是設計用戶界面,也就是在空白窗體中放入所需要的控件,如命令按鈕,單選鈕,文本框,標簽,圖片框等,然后針對各控件上要發生的事件(如鼠標單擊,鼠標移動等)書寫事件過程,最后將編寫的應用程序運行,調試,生成執行文件即可。VB中能和其它Window應用程序建立DDE通道的控件有文本框,標簽和圖片框。下面結合簡單實例,說明VB應用程序與AutoCAD間建立DDE通道和交換數據的方法。

  在VB中啟動一個新項目,參見圖(1)建立窗體,其中“建立鏈接”,“直線”,“標注”,“退出”為命令按鈕,標有“Text1”的為文本框,用于建立DDE通道,并輸入下面的事件代碼。

 OptionExplicit

 
  End

 EndSub

  運行此應用程序,注意在運行前,一定要先加載AutoCAD。單擊“建立鏈接”按扭,cmdLink_Click()過程被執行,執行時設置文本框Text1的LinkTopic和LinkMode的屬性,完成VB應用程序與AutoCAD間DDE通道的建立。LinkTopic屬性用于通知AutoCAD由誰來提供數據,它被管道符“|”分成兩部分,第一部分“AutoCAD.DDE”為應用程序名,第二部分“System”是通訊的主題。LinkMode屬性用于切實建立鏈接,在LinkMode=0時,表示關閉以前的DDE通道,在LinkMode=2時,表示以手動模式激活DDE通道。

  在完成DDE鏈接后,VB應用程序就可以與AutoCAD間進行數據交換或命令傳送了。單擊“直線”按扭,cmdLine_Click()過程被執行,應用程序通過LinkExecute方法向AutoCAD發送命令,在AutoCAD中以點(3,3)和(8,8)為端心,畫一條直線。語句中的^3相當于AutoCAD中的取消鍵Ctrl C,空格相當于AutoCAD中的回車鍵。單擊“標注”按扭,執行cmdText_Click()過程,可在AutoCAD中顯示以(10,10)為基點,高為1,旋轉角度為90的字符串“AutoCAD!”。語句中的^10相當于AutoCAD中的回車鍵,在標注文字時不能用空格代替回車鍵。

  根據需要,可用上面的方法傳送AutoCAD的其它命令,實現對AutoCAD的開發。

二、通過調用VBADS開發

  上面介紹了在VB應用程序中直接利用DDE與AutoCAD作用實現開發的方法,此方法要求用戶自己建立與AutoCAD間的DDE通道,此外,我們還可以通過調用VBADS函數對AutoCAD進行開發。在VBADS函數庫中已有專門的函數負責建立應用程序與AutoCAD間的DDE通道,而不需用戶親自建立,較為方便。另外,VB應用程序還可以通過VBADS函數向AutoCAD發送數據和命令,同時也可以利用VBADS函數的返回值來獲得AutoCAD的數據,實現對AutoCAD更深入的開發。

  為了利用AutoCAD的VBADS函數建立VB的應用程序,AutoCAD提供了幾個VBADS支撐文件,這些文件除DDEBAS.EXE和ACADVB.DLL存放在C:/ACADWIN子目錄外,其余都存放在C:/ACADWIN/VB/NEW子目錄中。文件如下:

  1.DDEBAS.EXE-ADS/DDE服務者,為保證VB于AutoCAD間正常通信,此命令必須首先在AutoCAD中用XLOAD命令加載運行。

  2.ACADVB.DLL-VBADS動態連接庫,在運行VB應用程序前,應將其拷到C:/WINDOWS/SYSTEM/子目錄下。

  3.GLOBAL.BAS-VBADS應用程序中所需要使用的全局變量定義文件。

  4.ADSFUNCS.BAS-VBADS函數庫,可以在VB應用程序中直接調用。

  5.ADSFUNCS.FRM-包含有應用程序和AutoCAD間建立DDE鏈接的窗體文件。下面結合具體的例子,說明利用VBADS函數開發應用程序的方法。[HJ]   啟動VB,打開C:/ACADWIN/VB/NEW/NEWPROJ.MAK項目文件,參見圖[2]建立新窗體,并輸入如下的事件代碼。

 OptionExplicit

 PrivateSubForm_Load()

  DDE_TIMEOUT=-1 '等待DDE事件

  txtX.Text=5 '圓心,半徑的隱含值

  txtY.Text=5

  txtRadius=3

 EndSub

 PrivateSubcmdCircle_Click() '畫圓過程

  DimretAsInteger

  DimptAsads_point '定義Ads點類型

  DimRadiusAsDouble

  DimApndllAsApndLLType '定義增加鏈表類型

  DimResbufAsResbufType '定義結果緩沖器

  pt.X=val(Trim(txtX.Text)) '給圓心,半徑賦值

  pt.Y=val(Trim(txtY.Text))

  Radius=val(Trim(txtRadius.Text))

  ret=ads_newrb(10,Resbuf) '建立新的結果緩沖器

  Resbuf.hResbuf=0

  Apndll.apType=RTSTR '說明鏈表類型為字符串

  Apndll.apString="circle" Chr$(0) '鏈表賦值

  ret=ApndLLNode(Resbuf,Apndll) '增加鏈表到結果緩沖器

  Apndll.apType=RTPOINT

  Apndll.apPoint=pt

  ret=ApndLLNode(Resbuf,Apndll)

  Apndll.apType=RTREAL

  Apndll.apReal=Radius

  ret=ApndLLNode(Resbuf,Apndll)

  Apndll.apType=RTNONE '鏈表結束值類型

  ret=ApndLLNode(Resbuf,Apndll)

  ret=ads_cmd(Resbuf) '執行結果緩沖器的命令

  ret=ads_relrb(Resbuf) '釋放結果緩沖器

  EndSub

PrivateSubcmdExit_Click() '退出過程

  End

 EndSub

  在應用程序運行前,必須首先運行AutoCAD,并用命令(XLOAD"DDEBAS")加載DDEBAS.EXE。在上面的應用程序中,除語句DDE_TimeOut=-1外,沒有其它涉及建立DDE通道的語句,因為應用程序與AutoCAD間建立DDE通道所需要的代碼已保存在VBADS函數庫中,打開支撐文件adsfuncs.bas,可以發現SubOPENDDE()過程,它負責VB應用程序與AutoCAD間DDE通道的建立,所以用戶在開發應用程序時,只管調用VBADS函數即可。例子中的cmdCircle_Click()過程,是在VB4.0編程環境通過調用VBADS函數開發的,運行程序后在文本框中輸入半徑和圓心的值,單擊“畫圖”按扭,即可在AutoCAD中得到所需的圓。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品高潮呻吟久久av无限| 亚洲网址你懂得| 国产福利精品在线| 色妞一区二区三区| 91精品国产精品| 久久99久久99精品中文字幕| 国产精品视频中文字幕91| 91国产视频在线播放| 亚洲精品99久久久久中文字幕| 日韩欧美高清视频| 欧美精品免费播放| 亚洲欧美激情四射在线日| 亚洲成人精品视频| 在线观看免费高清视频97| 欧美日韩在线视频一区| 国产精品视频网址| 亚洲欧美日本伦理| 亚洲精品视频免费在线观看| 日韩在线高清视频| 久久精品一区中文字幕| 欧美亚洲免费电影| 日韩中文字幕国产| 亚洲国产精久久久久久| 福利视频第一区| 国产精选久久久久久| 欧美午夜精品伦理| 欧美三级欧美成人高清www| 欧美激情久久久久久| 国产精品成人一区二区| 国产精品盗摄久久久| 国内精品国产三级国产在线专| 国产精品人成电影| 亚洲香蕉av在线一区二区三区| 黑人狂躁日本妞一区二区三区| 91精品视频网站| 日韩久久午夜影院| 国产精品入口免费视频一| 欧美性极品xxxx娇小| 日韩中文字幕国产精品| 精品久久久久久久久久久久久| 欧美国产日韩一区二区在线观看| 在线观看欧美视频| 国产精品成av人在线视午夜片| 在线看国产精品| 最新91在线视频| 国产成人一区三区| 亚洲成人xxx| 国产日韩欧美综合| 在线观看欧美成人| 久久久精品一区| 成人激情视频在线播放| 亚州精品天堂中文字幕| 人九九综合九九宗合| 国产999视频| 热门国产精品亚洲第一区在线| 国产精品成人免费电影| 亚洲国产精品免费| 91成人精品网站| 97av在线影院| 日韩美女av在线免费观看| 高跟丝袜一区二区三区| 69久久夜色精品国产69| 国产日韩欧美电影在线观看| 综合国产在线视频| 国产精品av在线| 国产欧美一区二区三区四区| 欧美日韩国产一区二区三区| 黄色精品一区二区| 日韩经典第一页| 欧美性生交xxxxxdddd| 国内精品400部情侣激情| 国产精品福利在线观看网址| 成人av电影天堂| 91精品一区二区| 日韩av片永久免费网站| 久久久久久久久久亚洲| 91精品国产91久久久久久| 成人97在线观看视频| 色爱av美腿丝袜综合粉嫩av| 精品国内产的精品视频在线观看| 欧日韩不卡在线视频| 欧美午夜影院在线视频| 国产视频自拍一区| 亚洲尤物视频网| 精品夜色国产国偷在线| 中文字幕在线看视频国产欧美在线看完整| 九九视频直播综合网| 亚洲综合日韩中文字幕v在线| 一区二区欧美日韩视频| 国产精选久久久久久| 97久久超碰福利国产精品…| 中文字幕日韩视频| 日韩在线观看免费高清完整版| 国产日韩欧美自拍| 97在线看福利| 欧美性精品220| 国内精品久久久久影院 日本资源| 精品国产自在精品国产浪潮| 日韩精品亚洲精品| 青草热久免费精品视频| 国产精品久久色| 亚洲影院色在线观看免费| 国产精品jizz在线观看麻豆| 欧美国产欧美亚洲国产日韩mv天天看完整| 九九久久久久99精品| 欧美日韩一区二区免费视频| 国产精品中文字幕在线| 国产精品亚洲第一区| 久久亚洲精品国产亚洲老地址| 成人在线视频网站| 欧美激情免费看| 欧美亚洲另类视频| 国产精品h在线观看| 成人羞羞国产免费| 91精品久久久久久久久不口人| 日韩精品视频观看| 亚洲高清在线观看| 亚洲欧美日韩中文在线| 欧美肥老妇视频| 欧美日韩亚洲系列| 91精品中国老女人| 国产xxx69麻豆国语对白| 精品成人国产在线观看男人呻吟| 精品久久久久久久久久ntr影视| 欧美国产日韩一区二区| 亚洲人成电影在线| 亚洲影院高清在线| 日本不卡视频在线播放| 国产精品高清在线观看| 在线精品国产成人综合| 奇米4444一区二区三区| 欧美精品激情blacked18| 欧美成人免费大片| 国内精品小视频| 亚洲第一页在线| 色偷偷亚洲男人天堂| 久久免费福利视频| 日韩成人av在线播放| 2019中文字幕在线| 久久久久99精品久久久久| 国产精品美女主播在线观看纯欲| 亚洲第一福利网| 国产精品一区二区av影院萌芽| 一本久久综合亚洲鲁鲁| 亚洲成av人影院在线观看| 国产精品9999| 久久久午夜视频| 日韩美女免费线视频| 亚洲欧洲日韩国产| 亚洲成人精品视频| 欧美亚洲国产日韩2020| 日韩在线高清视频| 69久久夜色精品国产69| 亚洲国产成人久久综合| 成人免费视频网址| 国语对白做受69| 久久精品2019中文字幕| 高跟丝袜一区二区三区| 久久久久国色av免费观看性色| 亚洲欧美日韩高清| 亚洲精品色婷婷福利天堂| 欧美黑人狂野猛交老妇| 97免费在线视频| 成人免费观看a|