VisualLISP 除了線上文件豐富之外,最近看到一份範例集錦 vlsample.zip,裡面有很多範例檔,詳細展示了各種 VisualLISP 技巧和 ActiveX 物件的使用方式,尤其是 reactor 和 ActiveX 物件是參考價值最高的部份。相關文章和 zip 檔可以到 AfraLisp 網站閱讀及下載。壓縮檔展開之後有一堆 .lsp 程式檔還有 .prj 計畫檔,各個檔案的簡要說明如下:
afact.lsp: 階乘
blackboard.lsp: 如何使用黑板(blackboard)在不同文件之間共享資料、函數和物件
color-util.lsp: 在 AutoCAD 內使用全彩(true color)
doc_utils.lsp: 搭配 main_mdi.lsp 使用(sample-instrs, load-vlxfile)
drawline-with-errors.lsp: 錯誤示範(官方文件範例)
drawline.lsp: (官方文件範例)
grafun.lsp: 分別用 ActiveX 和 AutoLISP 函數建立 3D mesh
image.lsp: 用 ActiveX 函數插入一張影像
lispdata1.lsp: 將 AutoLISP 資料儲存在繪圖資料中(用 ldata & dictionary)
lispdata2.lsp: 將 AutoLISP 資料儲存在繪圖資料中(更好的方法)
main_mdi.lsp: 如何使用 variant 和 safearray 變數
Mouse Reactor.lsp: 用 ActiveX menu API 和 mouse reactor 建立右鍵跳出式選單
Obj-Props.lsp: 如何與物件屬性管理員溝通(透過選集和反應器傳送異動訊息)
propagate.lsp: 傳送 print-list 函數(依賴 s::startup 的執行)
regdump.lsp: 如何使用 registry-xxxx 函數以及使用者自訂登錄函數
timestamp.lsp: 使用 vlax-add-cmd 和 vlax-reg-cmd 建立原生命令(不用 c:)
tmatrix.lsp: 使用 vla-TransformBy 和變形矩陣
typelib.lsp: 如何匯入以及使用型別庫(type library)進行跨應用程式整合
vlx_app.prv: (計畫檔)
vlx_app.vlx: (binary code)
vlx_file.fas: (binary code)
vlx_file.lsp: 變數可在程式和文件名域之間、程式名域和執行期黑板之間交換
xdata_variants.lsp: 如何使用 variant 和 safearray 變數
xrecord.lsp: 使用 xrecord 和 dictionary
yinyang.lsp: (官方文件範例)
ActiveX
al-tst.lsp: (測速)用 AutoLISP 畫 2000 個圓
vla-tst.lsp: (測速)用 ActiveX 畫 2000 個圓
vla-tst.prj: (計畫檔)
RCTR-TST
app-reg.lsp: (起始檔)
getparm.dcl: 對話框定義(由 rctr.lsp 呼叫)
getparm.lsp: 對話框處理(由 rctr.lsp 呼叫)
rctr-tst.prj: (計畫檔)
rctr.lsp: 將圓等距排列在一條曲線上,並跟著曲線動
rsame.lsp: 讓不同物件共享一組屬性
rtie.lsp: 定義 reactor 輔助函數
rtrans.lsp: 定義 reactor 位移函數
REAC-TST
a-mtext.lsp: 圓與文字物件同步更動
acdbex.lsp: 測試 AcDbReactor 反應器
copyself.lsp: 定義 reactor 複製函數
ctie.lsp: 定義 reactor 輔助函數
dimex.lsp: 圓與文字物件同步更動
dumbells.lsp: 兩個圓掛在一條線段的兩端,會一起連動
editex.lsp: 在編輯器中新增/移除 reactor
linkex.lsp: 定義一些 reactor 測試函數
objex.lsp: 三個圓有不同顏色,但其半徑會同步更動
pipe.lsp: 利用一條曲線和圓做一條中空管,而且會跟著曲線更動
r-info.lsp: 用來顯示本範例函數的說明
r-init.lsp: 初使化全域變數
reac-tst.prj: (計畫檔)
rolls.lsp: 物件和編輯器 reactor 範例
rtransl.lsp: 定義 reactor 輔助函數
rutils.lsp: (輔助)建立全域變數
same-rcl.lsp: 讓三個圓同步更動
sel-reac.lsp: 如何選取綁在一個 vla 物件上的所有 reactor
toplevel.lsp: 一開始執行就顯示的求助訊息
No comments:
Post a Comment