老司机午夜精品_国产精品高清免费在线_99热点高清无码中文字幕_在线观看国产成人AV天堂_中文字幕国产91

切換到寬版
  • 廣告投放
  • 稿件投遞
  • 繁體中文
    • 3818閱讀
    • 1回復(fù)

    [分享]AutoCAD開發(fā)常見問題收集 [復(fù)制鏈接]

    上一主題 下一主題
    離線cyqdesign
     
    發(fā)帖
    28853
    光幣
    94605
    光券
    0
    只看樓主 倒序閱讀 樓主  發(fā)表于: 2007-03-29
    問:有什么方式可以在AutoCAD啟動的時候自動加載VBA工程? Akws I@@  
    MZWv#;.]  
    答:當VBA加載時會在AutoCAD目錄下尋找一個名叫acad.dvb的工程。如果找到,就會自動加載它。如果你想VBA和缺省工程在 AutoCAD啟動的時候每次都加載,你需要在acad.rx文件中生成一個入?。VBA被設(shè)計成命令加載方式(在沒有激活一個VBA命令之前不占用任何 內(nèi)存和進程)。為了總是加載VBA和acad.dvb工程,請在acad.rx文件中包含下列一行: (c"!&&S^ =  
    *5hbD-a:  
    acadvba.arx zMO#CZ t  
    l,3,$  
    在AutoCAD 2000中支持嵌入工程,這樣當你打開擁有嵌入工程的圖形文件時該工程就會自動加載。所以定義嵌入工程也是一個很好的自動加載VBA工程的辦法。 p*T[(\8{n  
    L(k`1E  
    問:有辦法可以在AutoCAD啟動時自動運行一個VBA例程或宏嗎? h qhX  
    9%"\s2T  
    >vYb'%02  
    答:當然。你可以從AutoCAD的acad.lsp文件的啟動功能中通過VBARUN的命令行版本運行一個工程中的宏。首先,你需要準備 acad.dvb文件以便自動加載。以drawline.dvb作為例子,用VBALOAD命令彈出VBA IDE對話框。然后用VBA IDE保存為菜單命令保存此工程為新的名字acad.dvb。下一步,激活notepad.exe并且建立或添加下列行到acad.lsp文件中: H;q[$EUNb  
    @o#Yq n3Y  
    (defun S::STARTUP() (command "_-vbarun" "drawline")) to1r 88X  
    L`w r~E2u  
    問: AutoCAD支持VBA多工程的打開嗎? L8Z@Dk7Y  
    F ~7TE91C  
    答:在2000中支持。但在14版中尚不支持。 o Q*LP{M  
    7[K3kUm[  
    問:我可以加密我的VBA模塊代碼嗎? cW"DDm g  
    !"-.D4*r  
    答:雖然VBA不支持可執(zhí)行文件的創(chuàng)建,但是它確實在一個工程的基礎(chǔ)上提供了口令保護工程窗體、類和模塊可見性的功能。你可以發(fā)現(xiàn)這個工程保護功能在VBA IDE菜單中。選擇 工具 > 工程屬性 > 保護。如下圖所示: _2}~Vqb+  
    a"t~ K  
    B(} 'yY@%u  
    問:在VBA中如何在命令行上提示? X8R:9q_  
    &RI;!qn6(  
    答:有一些方法允許在命令行提示輸入以獲取數(shù)據(jù)。這些方法以“GET”開頭。你可以發(fā)現(xiàn)決大多數(shù)的方法(如果不是全部的話)通過對象瀏覽器搜索 AutoCAD類型庫。啟動VBA IDE。擊F2功能鍵或者從視圖菜單中選擇對象瀏覽器。?對象瀏覽器窗口中使用庫范圍下拉列表把缺省的<所有庫>改成AutoCAD。庫列表 下面的編輯列表框是用來搜索的。輸入GET到那個編輯列表框中并且敲回車鍵。包含“GET”的類和成員函數(shù)就會顯示在滾動列表中。AcadUtility 的一些成員函數(shù)可以?命令行上提示用戶輸入。如下圖所示: Rh$+9w  
    myqwU`s  
    問:我怎樣從AutoCAD菜單中激活一個VBA例程? 7xux%:BN  
    cq3Z}Cp  
    答:你需要編輯菜單和添加VBARUN模塊子例程。首先確認正確的VBA工程已經(jīng)加載。 .=d40m  
    問:我怎樣從AutoCAD菜單中啟動一個VBA對話框(窗體)? )~ &gBX  
    {X_I>)Wg  
    答:除了創(chuàng)建一個VBA窗體,你還需要創(chuàng)建一個VBA子例程來顯示這個窗體。而這個子例程需要用VBARUN命令激活。1. 啟動VBA IDE;2. 從菜單中選擇 插入 > 用戶窗體(缺省名稱為UserForm1);3. 添加合適的控件到你的窗體中; 4. 下一步,從菜單中選擇 插入 > 模塊;5. 輸入以下的代碼到缺省的Module1模塊中:Sub Foo() UserForm1.showEnd Sub6. 最后,編輯AutoCAD菜單調(diào)用以下命令來激活對話框: -VBARUN Module1.foo. fBz|-I:k +  
    Q00v(6V46  
    問:我已經(jīng)寫了一個VBA例程用ThisDrawing.Utility.GetPoint獲取一個點。當我從一個VBA對話框中啟動這個例程時,我可以在命令行上看到提示。但是我不能在AutoCAD屏幕上點取一個點。我作錯了什么? ?_p!teb  
    dD~H ft  
    答:首先需要關(guān)閉對話框,然后才能從AutoCAD獲取數(shù)據(jù)。添加以下的代碼到ThisDrawing.Utility.GetPoint之前的任何地方以關(guān)閉對話框,然后你就可以獲得一個點了。 pjoyMHWK  
    4PkKL/E  
    Me.Hide Z5*(xony0  
    * {~`Lw)y  
    問:有方法加載一個VBA工程而在加載后不顯示VBA IDE嗎? gX(Xj@=(&  
    T/ eX7p1  
    vifw FPe  
    答:如果你設(shè)置AutoCAD系統(tǒng)變量FILEDIA為0,或者在你加載一個工程的時候把<打開VBA編輯器>的開關(guān)關(guān)閉,你就不會?加載之后看到VBA IDE了。這是一個標準的AutoCAD轉(zhuǎn)換機制。 )54a' Hp  
    =K|#5p`  
    問:VBA和AutoLISP有何不同,兩者如何轉(zhuǎn)換? > LN*3&W  
    0w< ilJ  
    答:如果你已經(jīng)熟知AutoLISP并且想學習VBA,通過把VBA和AutoLISP表達式聯(lián)系起來的方法就可以容易地做到。以下就是一個關(guān)于兩 種語言的比較。由于大量的AutoLISP代碼可以利用,轉(zhuǎn)換一個已有的AutoLISP代碼段為VBA遠比重新編制VBA代碼來得容易。如果兩者的變量 名字保持一致,那么比較兩者的代碼也就變得容易了。 =VT\$ 5A