vlisp開發(fā)小助手實(shí)現(xiàn)Lisp可識(shí)別對(duì)象的屬性方法.可以即時(shí)屬性查看修改,自動(dòng)在CHM中對(duì)應(yīng)查詢,代碼全自動(dòng)生成,寫入記事本,可以自定義變量,不會(huì)lisp的人也能點(diǎn)出代碼來.
更新日志:
發(fā)布1.5 賀歲版
如果不方便用Lisp編輯器你就新開個(gè)CAD用
修正bug:
1 entsel賦變量會(huì)死掉
2 剪切板訪問錯(cuò)誤解除
增加功能:
1 兩次屬性值對(duì)比 如選擇一個(gè)圖元后 記錄一下 退出小助手修改圖元 再用小助手查看對(duì)比屬性
2 屬性修改會(huì)自動(dòng)生成vla-put
3 可在EXCEL文件中自定義根對(duì)象 自定義幫助文件路徑和幫助文件的查詢代碼(右鍵幫助頁面屬性 對(duì)應(yīng)我給的例子修改即可) 保存后重新運(yùn)行小助手(支持Lisp語句哦!)
4 自動(dòng)復(fù)制和手動(dòng)復(fù)制切換功能
5 合并獲得對(duì)象按鈕 同樣支持變量和Excel.Application形式
6 增加color屬性
7 新的樹型布局 價(jià)格不變量更足
-------------------------
發(fā)布1.4版 分為簡(jiǎn)體 繁體 英文3個(gè)版本
程序具體功能介紹:
1 左側(cè)列表生成visual lisp可識(shí)別的對(duì)象模型列表(支持變量 外部控件 圖面選擇)
2 右側(cè)列表查看對(duì)象的屬性和方法(屬性可以進(jìn)行即時(shí)修改)
3 單擊任意列表自動(dòng)生成代碼(注意方法的代碼需要測(cè)試否則直接加載可能會(huì)有錯(cuò)誤 因?yàn)閰?shù)不足)
4 目錄樹雙擊查看子對(duì)象
5 屬性 方法列表雙擊自動(dòng)在CHM幫助中查詢 可以自己選擇中文幫助(或自己將中文幫助替換英文的)
6 兩側(cè)屬性實(shí)現(xiàn)對(duì)應(yīng)關(guān)系
7 任何生成的代碼均可自動(dòng)復(fù)制到內(nèi)存剪切板中 到其他地方可以直接粘貼
8 使用命令Lisp (最初的2個(gè)版本為autolisp)
9 支持加載到命令行查看結(jié)果
10 方法的使用自己添加參數(shù)(支持變量)中間需要用英文標(biāo)點(diǎn),分割(就像VBA的使用)
11 自動(dòng)寫入記事本文件
12 支持給代碼賦予變量 即時(shí)生效
vlisp開發(fā)小助手使用小技巧:
小技巧:對(duì)象屬性修改后雙擊左邊列表可以刷新對(duì)象屬性顯示 查看屬性是否修改成功!
小技巧:支持GetBoundingBox獲得對(duì)象范圍輸入'pa,'pb
可以自動(dòng)生成代碼:(vlax-invoke-method (vlax-ename->vla-object (car (entsel))) 'GetBoundingBox 'pa 'pb )
小技巧:生成的代碼返回值如果是對(duì)象變量 可以直接復(fù)制代碼到查看變量 如果彈出幫助是英文的 可以把明經(jīng)的幫助替換CAD原幫助
小技巧:屬性修改和方法測(cè)試支持變量.如(setq n 50)可以對(duì)AddCircle使用(list n n),n
生成代碼:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'AddCircle (vlax-3d-point (list n n)) n )
---------------------------
注意:
如果反復(fù)提示"是否網(wǎng)頁訪問剪切板"或; 錯(cuò)誤: OpenClipboard 失敗
請(qǐng)?jiān)O(shè)置IE瀏覽器的工具-選項(xiàng)-安全-自定義級(jí)別-腳本-允許剪切板進(jìn)行編程訪問(此問題從1.5版本已經(jīng)修正)
--------------------
以后計(jì)劃: 能直接生成VBA的代碼 定制用戶自己的配置 提供常用對(duì)象的列表 增加自定義變量賦值......(再做下去不知道會(huì)怎樣 很期待啊 難道做個(gè)迷你的vlisp編輯器出來? o(∩_∩)o...)
Visual Lisp 開發(fā)小助手 v1.1 簡(jiǎn)明教程
說明
{O}:object 表示對(duì)象目錄樹列表
{P}:property 表示屬性列表
{M}:methods 表示方法列表
{}ActiveDocument 表示在某個(gè)列表中單擊 "ActiveDocument"
<PI>:property input 表示屬性輸入欄
<MI>:methods input 表示方法輸入欄 使用英文標(biāo)點(diǎn),分隔參數(shù)!
<>:(0 0) 表示輸入欄內(nèi)輸入內(nèi)容 可能是字符串 整數(shù) 實(shí)數(shù) 點(diǎn)表
代碼生成教程開始:
先新開一張圖
1 建立一個(gè)圖層
{O}ActiveDocument->{O}Layers->{M}add-><MI>"new"->測(cè)試
下面代碼出現(xiàn)結(jié)果說明方法成功!
復(fù)制代碼后退出程序可以看見建立了一個(gè)新的new層
生成的代碼:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Add "new" )
2 繪制一條線
{O}ActiveDocument->{O}ModelSpace->{M}AddLine-><MI>(0 0),(100 100)->測(cè)試
生成的代碼:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'AddLine (vlax-3d-point '(0 0)) (vlax-3d-point '(100 100)) )
3 修改剛才的線的圖層為new
選擇對(duì)象->圖面選擇剛才生成的線->{P}layer->{PI}"new"->修改
生成的代碼:(vlax-put-property (vlax-ename->vla-object (car (entsel))) 'Layer "new")
4 獲取畫面上第一個(gè)圖元(就是剛才的線)
{O}ActiveDocument->{O}ModelSpace->{M}item-><MI>0->測(cè)試
生成的代碼:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'Item 0 )
5 修改上面代碼的對(duì)象的起點(diǎn)坐標(biāo)
命令行輸入:
(setq name (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace) 'Item 0 ))
回車
打開小助手
當(dāng)前根對(duì)象輸入name->查看變量->{P}StartPoint-><PI>(0 200)->修改
生成的代碼:(vlax-put-property name 'StartPoint (vlax-3d-point '(0 200)))
6 剛才的new層刪除
{O}ActiveDocument->{O}Layers->{M}item-><MI>"new"->測(cè)試
生成代碼:(vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Item "new" )
命令行輸入:
(setq lay (vlax-invoke-method (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Layers) 'Item "new" ))
打開小助手
當(dāng)前根對(duì)象輸入lay->查看變量->{M}Delete->測(cè)試
生成代碼:(vlax-invoke-method lay 'Delete )
該層刪除成功
上面說的都很簡(jiǎn)單 復(fù)雜一點(diǎn)例如求交點(diǎn)也可以 自己嘗試一下吧:)
------------代碼生成教程結(jié)束------------
怎么樣?用鼠標(biāo)點(diǎn)一點(diǎn)就能生成代碼
對(duì)新人會(huì)有幫助吧?
如果你不知道屬性和方法的含義
雙擊它就會(huì)打開幫助頁面幫你查詢!
明經(jīng)通道的那本VBA幫助一定要放到搜索目錄下面文件名必須acadauto.chm
如果反復(fù)提示"是否網(wǎng)頁訪問剪切板"
請(qǐng)?jiān)O(shè)置IE瀏覽器的工具-選項(xiàng)-安全-自定義級(jí)別-腳本-允許剪切板進(jìn)行編程訪問