日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

@lisp 函数库 - CAD应用云

發布時間:2023/12/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @lisp 函数库 - CAD应用云 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@lisp 函數庫


? @lisp 函數庫是一個開源、共享、可云端加載的 autolisp 函數庫。由像您一樣熱愛開源共享的愛好者所構筑并維護。可依據開放許可協議自由使用。

? @lisp函數庫功能涉及 圖元、 圖塊、 實體對象、 選擇集、 Excel、 剪貼板、 曲線、 顏色、 編組、 圖層、 布局、 點線、 字符串、 數學運算、 矩陣運算、 界面等。更多內容持續迭代中 ...?

** 社區驅動

? @lisp 函數庫是一個多元化的信息分享社區,它充滿激情,并且每天都在成長。我們的參與者包括 lisp 程序共享愛好者、lisp開發編程人員、CAD從業人員、服務器維護工程師,以及其他很多各界人士。

** 開放代碼

? ?@lisp 函數庫是開源代碼,只要您表明使用了 @lisp 函數庫并承認其貢獻者的工作,您就可以使用 @lisp函數庫。如果您改變或者使用這些代碼,您必須按照相同的版權協議發布結果。@lisp函數庫 遵循 MIT 開源協議。

? ?
如何使用 @lisp函數庫

? 使用@lisp函數庫非常簡單。只要你在CAD中安裝了 [[https://gitee.com/atlisp][*@lisp*]] ,在能訪問互聯網的情況下。就可以遠程加載 @lisp函數庫調用函數了。

? 當遠程導入成功后,會提示 成功輸入的函數 數量。生成函數列表到 lisp變量 ?@:*functions* 。
??
? @:*functions* 為最后一次成功導入的函數列表。

? (require 'ui:*) ;;導入 ui 相關函數庫(require 'block:*) ;;導入 block 相關函數庫(require 'entity:*) ;;導入 entity 圖關 相關函數庫(require '(ui:* block:* entity:*)) ;; 一次導入多個庫(import 'ui:*) ? ;; import 與 require 用法相同(import 'block:*) ;; import 為 require 別名(import '(ui:* block:* entity:*) ;; import 與 require 用法相同(princ @:*functions*) ?;; @:*functions* 為最后一次成功導入的函數列表。;; 導入函數后,就可以使用這些函數了(entity:make-line '(0 0 0) '(10 10 0)) ;; 使用庫函數創建一條直線(ui:select "請選擇" '("張三" "李四" "王五")) ;; 使用庫函數創建一個單選對話框


* 函數庫幫助系統


? 以下lisp表達式中的函數名,可以是符號,也可以是字符串,如果函數定義已加載到 CAD 中,也可以直接輸入函數名。如下所示。
** 函數列表
?

? ?(fun:list) ; 顯示函數?



** 函數用法查詢


? ?在CAD命令行顯示函數用法
#+BEGIN_SRC lisp

? ?(fun:usage 函數名) ; 顯示函數用法(fun:help 函數名) ; 顯示函數用法;; 示例(fun:usage 'string:to-list)(fun:usage string:to-list)(fun:usage "string:to-list")(fun:help 'string:to-list)(fun:help string:to-list)(fun:help "string:to-list")

?
** 查看函數源代碼

? ?(fun:src 函數名) ; 顯示函數代碼;; 示例(fun:src string:to-list)(fun:src 'string:to-list)(fun:src "string:to-list")



** 搜索函數


? ?funmatch 可以是符號,也可以是字符串
?

? ?(fun:search funmatch);; 示例?(fun:search 'ui)(fun:search "ui")(fun:search "string:")(fun:search 'string)



* 發布函數


? 如果你是一個熱愛開源共享的愛好者、開發者。可以將自己認為有用的函數發布到 @lisp函數庫 中。

** 函數命名要求


? ?一般情況下函數命名原則為 *函數類別* + : + *功能* 。
? ?
? ?如 *entity:make-line* 繪直線函數 entity 為圖元類,make-line 為功能名。

? ?如 *block:insert* 插入塊 block 為塊操作類,insert 為功能名。
??
? ?也可以以自己的人名特征命名類別 ?*類別* + : + *功能* 。
? ?
? ?如 *lee-mac:make-line* ?*lee-mac:insert* ?為 lee-mac 提供的系列相關函數。

? ?如 *vitalgg:helloworld* ?*vitalgg:test* ?為 vitalgg 提供的系列相關函數。

** 函數格式


? ?定義函數用 *defun-q* ,不要使用 *defun* .否則不會上傳到云端。
? ?
? ?然后跟平時用 *defun* 定義函數一樣,使用參數變量及私有變量。

? ?后面跟三個字符串。第一個是函數說明,第2個是返回值說明,第3個是示例。
? ?可以全部省略。也可以只寫第1個,或只寫第1、第2個。

? ?然后 (setq @:this (qoute 函數名)) . 該標記用于記錄出錯時的函數名,便于給出更多提示信息。
? ?
? ?
#+BEGIN_SRC lisp?

(defun-q vitalgg:helloworld ()"函數功能說明,以及參數說明,作者等信息""返回值類型及說明""示例"(setq @:this 'vitalgg:helloworld)(alert "Hello autolisp!")"注釋文字會被清除掉。必要的文字,請直接寫字符串,就像該行這樣。" ) (defun-q vitalgg:test (str)"用于測試的函數,str 為字符串,by VitalGG""int: 參數字符串的第一個字母的 ascii 碼""(vitalgg:test \"Match\")"(setq @:this 'vitalgg:test)"生成字符串的第一個ascii碼。"(ascii str) )


#+END_SRC
??
? ?編碼調試完成后,如果可以正常使用。就可以發布這個或這些函數了。

? ?
? ?發布函數需要使用 @lisp開發工具。所以首先安裝 @lisp開發工具(dev-tools).

? ?按 *@@@* 打開開發者命令面板,函數庫->上傳函數。在對話框中輸入?

#+BEGIN_SRC
? ?vitalgg:*
#+END_SRC
? ?就可以上傳上面定義的兩個函數(vitalgg:helloword vitalgg:test) 了。


? ?或者在 *CAD命令行* 使用代碼上傳

#+BEGIN_SRC lisp

(@dev:upload-fun 'vitalgg:*) ? ?;;發布一系列函數? (@dev:upload-fun "vitalgg:*") ? ;;發布一系列函數? (@dev:upload-fun 'vitalgg:test) ;; ?發布單個函數


#+END_SRC

然后,用戶就可以輸入

#+BEGIN_SRC lisp

目錄

@lisp 函數庫

** 社區驅動

** 開放代碼

? ?如何使用 @lisp函數庫

* 函數庫幫助系統

** 函數用法查詢

?** 查看函數源代碼

** 搜索函數

* 發布函數

** 函數命名要求

** 函數格式



#+END_SRC

* 后記

? 更多功能,敬請期待 ...?

? ?
??

總結

以上是生活随笔為你收集整理的@lisp 函数库 - CAD应用云的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。