「VLE-関数」の版間の差分
| (同じ利用者による、間の24版が非表示) | |||
| 1行目: | 1行目: | ||
{{  | {{BCAD_LISP}}  | ||
VLE-関数は、BricsCAD の LISP   | VLE-関数は、BricsCAD の LISP に搭載されている拡張関数群。(BricsCAD V12.2 から搭載されバージョンを追う毎に拡充されてきている。)  | ||
AutoCAD の AutoLISP が R2000 から古いベースのままでパフォーマンスなどがほぼ改良されていないに等しい状態なのに対して、BricsCAD は LISP も他の開発言語と同様な機能やパフォーマンスを提供すべく AutoLISP の関数に極力悪い影響を与えない形で改良されている。VLE-関数は、その一環として追加されているといえる。  | |||
事実、BricsCAD の LISP 処理速度は、AutoCAD や他の互換 CAD に比べて控えめに言って爆速といえるパフォーマンスになっている。(V23.2でC++ベースのAPIと大差ないレベルになってる。)  | |||
vle-extension.lsp は純粋な AutoLISPコードのみを使用しているため、Windowsだけでなく、LinuxやMacintosh OSが動作している環境でも動作する。  | |||
MEMO:  | MEMO:  | ||
| 12行目: | 16行目: | ||
===VLE 関数ライブラリのカテゴリと関数===  | ===VLE 関数ライブラリのカテゴリと関数===  | ||
-----  | |||
====リスト系関数====  | |||
<div class="mcol3">  | |||
* [[vle-append]]  | |||
* [[vle-cadrassoc]] V20で追加  | |||
* [[vle-cdrassoc]]  | |||
* [[vle-list-intersect]]  | |||
* [[vle-list-massoc]] V16で追加  | |||
* [[vle-list-split]]  | |||
* [[vle-list-subtract]]  | |||
* [[vle-list-union]]  | |||
* [[vle-list-diff]]  | |||
* [[vle-member]]  | |||
* [[vle-nthX|vle-nth<x>]]  | |||
**vle-nth0,vle-nth1,vle-nth2,vle-nth3,vle-nth4,vle-nth5,vle-nth6,vle-nth7,vle-nth8,vle-nth9,  | |||
* [[vle-put-nth]]  | |||
* [[vle-remove-all]]  | |||
* [[vle-remove-first]]  | |||
* [[vle-remove-last]]  | |||
* [[vle-remove-nth]]  | |||
* [[vle-search]]  | |||
* [[vle-sublist]]  | |||
* [[vle-subst-nth]]  | |||
</div>  | |||
-----  | |||
====文字列関数====  | |||
<div class="mcol3">  | |||
* [[vle-string-replace]] V17で追加  | |||
* [[vle-string-split]]  | |||
* [[vle-edittextinplace]] V21.1で追加  | |||
</div>  | |||
-----  | |||
====数学+幾何関数====  | |||
<div class="mcol3">  | |||
* [[vle-ceiling]]  | |||
* [[vle-round]]  | |||
* [[vle-tan]]  | |||
* [[vle-floor]]  | |||
* [[vle-roundto]]  | |||
</div>  | |||
-----  | |||
==== ユーティリティ関数====  | |||
<div class="mcol3">  | |||
* [[vle-aci2rgb]] V15で追加  | |||
* [[vle-alert]]  | |||
* [[vle-atoi32]]  | |||
* [[vle-collection-list|vle-collection->list]]  | |||
* [[vle-compile-shape]] V23.1 で追加  | |||
* [[vle-enableserverbusy]]  | |||
* [[vle-fastcom]]  | |||
* [[vle-hidepromptmenu]]  | |||
* [[vle-int64to32]]  | |||
* [[vle-itoa32]]  | |||
* [[vle-lispinstall]]  | |||
* [[vle-lispversion]]  | |||
* [[vle-licenselevel]] V17で追加  | |||
* [[vle-optimizer]]  | |||
* [[vle-ping-alive]]  | |||
* [[vle-rgb2aci]] V15で追加  | |||
* [[vle-ucs-current]] * 実装予定  | |||
* [[vle-ucs-isworld]] * 実装予定  | |||
* [[vle-safearray-list|vle-safearray->list]]  | |||
* [[vle-selectionset-list|vle-selectionset->list]]  | |||
* [[vle-showpromptmenu]]  | |||
* [[vle-startapp]]  | |||
</div>  | |||
-----  | |||
====ベクトル代数関数====  | |||
<div class="mcol3">  | <div class="mcol3">  | ||
* [[vle-vector-add]]  | * [[vle-vector-add]]  | ||
* [[vle-vector-angleonplane]] * 実装予定  | |||
* [[vle-vector-angleto]]  | * [[vle-vector-angleto]]  | ||
* [[vle-vector-angletoref]]  | * [[vle-vector-angletoref]]  | ||
| 70行目: | 100行目: | ||
* [[vle-vector-get]]  | * [[vle-vector-get]]  | ||
* [[vle-vector-getperpvector]]  | * [[vle-vector-getperpvector]]  | ||
* [[vle-vector-gettolerance]]  | |||
* [[vle-vector-getucs]]  | * [[vle-vector-getucs]]  | ||
* [[vle-vector-intersectlinewithplane]] * 実装予定  | |||
* [[vle-vector-intersectplanewithplane]] * 実装予定  | |||
* [[vle-vector-iscodirectional]]  | * [[vle-vector-iscodirectional]]  | ||
* [[vle-vector-isequal]]  | * [[vle-vector-isequal]]  | ||
* [[vle-vector-isparallel]]  | * [[vle-vector-isparallel]]  | ||
* [[vle-vector-isperpendicular]]  | * [[vle-vector-isperpendicular]]  | ||
* [[vle-vector-ispointonline]] * 実装予定  | |||
* [[vle-vector-ispointonplane]] * 実装予定  | |||
* [[vle-vector-isunitlength]]  | * [[vle-vector-isunitlength]]  | ||
* [[vle-vector-isvectoronplane]] * 実装予定  | |||
* [[vle-vector-isxaxis]]  | * [[vle-vector-isxaxis]]  | ||
* [[vle-vector-isyaxis]]  | * [[vle-vector-isyaxis]]  | ||
| 85行目: | 121行目: | ||
* [[vle-vector-length2dyz]]  | * [[vle-vector-length2dyz]]  | ||
* [[vle-vector-midpoint]]  | * [[vle-vector-midpoint]]  | ||
* [[vle-vector-mirrorpointatplane]] * 実装予定  | |||
* [[vle-vector-mirrorvectoratplane]] * 実装予定  | |||
* [[vle-vector-negate]]  | * [[vle-vector-negate]]  | ||
* [[vle-vector-normalise]]  | * [[vle-vector-normalise]]  | ||
* [[vle-vector-orthoprojectpointonplane]] * 実装予定  | |||
* [[vle-vector-orthoprojectpointonline]] * 実装予定  | |||
* [[vle-vector-orthoprojectlinetoplane]] * 実装予定  | |||
* [[vle-vector-projectpointonplane]] * 実装予定  | |||
* [[vle-vector-projectpointonline]] * 実装予定  | |||
* [[vle-vector-projectlinetoplane]] * 実装予定  | |||
* [[vle-vector-rotatepoint]] * 実装予定  | |||
* [[vle-vector-rotatevector]] * 実装予定  | |||
* [[vle-vector-scale]]  | * [[vle-vector-scale]]  | ||
* [[vle-vector-sub]]  | * [[vle-vector-sub]]  | ||
* [[vle-vector-settolerance]]  | * [[vle-vector-settolerance]]  | ||
* [[  | * [[vle-vector-to3d]] * V25.1で追加  | ||
*   | * [[vle-vector-to2d]] * V25.1で追加  | ||
* [[vle-pointp]]  | |||
*  | |||
</div>  | </div>  | ||
-----  | |||
====記号+定数関数====  | |||
<div class="mcol3">  | |||
* [[vle-extensions-active]]  | |||
</div>  | |||
-----  | |||
====エンティティ関数====  | |||
<div class="mcol3">  | |||
* [[vla-converttostaticblock]] V24.2 で追加  | |||
* [[vla-converttoanonymousblock]] V24.2 で追加  | |||
* [[vle-curve-getperimeter]]  | |||
* [[vle-entget]]  | |||
* [[vle-entmod]]  | |||
* [[vle-get-samplepoints]] * 実装予定  | |||
* [[vle-get-samplepointsbydistance]] * 実装予定  | |||
* [[vla-get-xeffectivescalefactor]] V23.2 で追加  | |||
* [[vla-get-yeffectivescalefactor]] V23.2 で追加  | |||
* [[vla-get-zeffectivescalefactor]] V23.2 で追加  | |||
* [[vla-getblockattributevalue]] V24.2 で追加  | |||
* [[vla-getblockattributevalue32]] V24.2 で追加  | |||
* [[vla-getblockattributevalue2]] V24.2 で追加  | |||
* [[vla-getblockattributevalue232]] V24.2 で追加  | |||
* [[vle-getgeomextents]]  | |||
* [[vle-dictsearch]]  | |||
* [[vle-dictionary-list]]  | |||
* [[vle-ename-valid]]  | |||
* [[vle-entget-m]]  | |||
* [[vle-entget-massoc]] V16で追加  | |||
* [[vle-entmod-m]]  | |||
* [[vle-dictobjname]]  | |||
* [[vle-is-curve]] V23.1 で追加  | |||
* [[vla-put-xeffectivescalefactor]] V23.2 で追加  | |||
* [[vla-put-yeffectivescalefactor]] V23.2 で追加  | |||
* [[vla-put-zeffectivescalefactor]] V23.2 で追加  | |||
* [[vla-setblockattributevalue]] V24.2 で追加  | |||
* [[vla-setblockattributevalue32]] V24.2 で追加  | |||
* [[vla-setblockattributevalue2]] V24.2 で追加  | |||
* [[vla-setblockattributevalue232]] V24.2 で追加  | |||
* [[vle-sunid]] V23.1 で追加  | |||
* [[vle-table-list]]  | |||
* [[vle-tblsearch]]  | |||
</div>  | |||
-----  | |||
====ファイル関数====  | |||
<div class="mcol3">  | |||
* [[vle-compile-shape]] * V23.1 で追加  | |||
* [[vle-file-encoding]] * V22.1 で追加  | |||
* [[vle-file-list|vle-file->list]]  | |||
*バイナリファイル読み込み関数  | |||
** リトルエンディアン  | |||
** [[vle-read-int8]]  | |||
** [[vle-read-int16]]  | |||
** [[vle-read-int32]]  | |||
** [[vle-read-int64]]  | |||
** [[vle-read-uint8]]  | |||
** [[vle-read-uint16]]  | |||
** [[vle-read-uint32]]  | |||
** [[vle-read-uint64]]  | |||
** [[vle-read-float]]  | |||
** [[vle-read-double]]  | |||
** [[vle-read-string]]  | |||
** ビッグエンディアン  | |||
** [[vle-read-int8-be]]  | |||
** [[vle-read-int16-be]]  | |||
** [[vle-read-int32-be]]  | |||
** [[vle-read-int64-be]]  | |||
** [[vle-read-uint8-be]]  | |||
** [[vle-read-uint16-be]]  | |||
** [[vle-read-uint32-be]]  | |||
** [[vle-read-uint64-be]]  | |||
** [[vle-read-float-be]]  | |||
** [[vle-read-double-be]]  | |||
*バイナリファイル書き込み関数  | |||
** リトルエンディアン  | |||
** [[vle-write-int8]]  | |||
** [[vle-write-int16]]  | |||
** [[vle-write-int32]]  | |||
** [[vle-write-int64]]  | |||
** [[vle-write-uint8]]  | |||
** [[vle-write-uint16]]  | |||
** [[vle-write-uint32]]  | |||
** [[vle-write-uint64]]  | |||
** [[vle-write-float]]  | |||
** [[vle-write-double]]  | |||
** [[vle-write-string]]  | |||
**  ビッグエンディアン  | |||
** [[vle-write-int8-be]]  | |||
** [[vle-write-int16-be]]  | |||
** [[vle-write-int32-be]]  | |||
** [[vle-write-int64-be]]  | |||
** [[vle-write-uint8-be]]  | |||
** [[vle-write-uint16-be]]  | |||
** [[vle-write-uint32-be]]  | |||
** [[vle-write-uint64-be]]  | |||
** [[vle-write-float-be]]  | |||
** [[vle-write-double-be]]  | |||
</div>  | |||
-----  | |||
==== データタイプ関数====  | |||
<div class="mcol3">  | |||
* [[vle-enamep]]  | |||
* [[vle-integerp]]  | |||
* [[vle-vlaobjectp]]  | |||
* [[vle-realp]]  | |||
* [[vle-stringp]]  | |||
* [[vle-filep]]  | |||
* [[vle-numberp]]  | |||
* [[vle-picksetp]]  | |||
* [[vle-safearrayp]]  | |||
* [[vle-variantp]]  | |||
</div>  | |||
-----  | |||
====トランザクション+表示関数====  | |||
<div class="mcol3">  | |||
* [[vle-displaypause]]  | |||
* [[vle-start-transaction]]  | |||
* [[vle-displayupdate]] V17で追加  | |||
* [[vle-end-transaction]]  | |||
</div>  | |||
==VLEの記号と定数==  | |||
* [[vle-extensions-active]] : VLEライブラリの有無を示す : VLE機能が利用可能な場合はT、そうでない場合はNIL  | |||
* [[vle_g_vecTol]] : (vle-vector-xxx)関数の幾何公差のプリセット、1e-10としてプリセットされる  | |||
[[Category:BricsCADのLISP]]  | |||
2025年3月22日 (土) 05:55時点における最新版
VLE-関数は、BricsCAD の LISP に搭載されている拡張関数群。(BricsCAD V12.2 から搭載されバージョンを追う毎に拡充されてきている。)
AutoCAD の AutoLISP が R2000 から古いベースのままでパフォーマンスなどがほぼ改良されていないに等しい状態なのに対して、BricsCAD は LISP も他の開発言語と同様な機能やパフォーマンスを提供すべく AutoLISP の関数に極力悪い影響を与えない形で改良されている。VLE-関数は、その一環として追加されているといえる。
事実、BricsCAD の LISP 処理速度は、AutoCAD や他の互換 CAD に比べて控えめに言って爆速といえるパフォーマンスになっている。(V23.2でC++ベースのAPIと大差ないレベルになってる。)
vle-extension.lsp は純粋な AutoLISPコードのみを使用しているため、Windowsだけでなく、LinuxやMacintosh OSが動作している環境でも動作する。
MEMO:
うちで作ってる、GZ-Lib と同じような発想の部分もある。
VLE 関数ライブラリのカテゴリと関数
リスト系関数
- vle-append
 - vle-cadrassoc V20で追加
 - vle-cdrassoc
 - vle-list-intersect
 - vle-list-massoc V16で追加
 - vle-list-split
 - vle-list-subtract
 - vle-list-union
 - vle-list-diff
 - vle-member
 - vle-nth<x>
- vle-nth0,vle-nth1,vle-nth2,vle-nth3,vle-nth4,vle-nth5,vle-nth6,vle-nth7,vle-nth8,vle-nth9,
 
 - vle-put-nth
 - vle-remove-all
 - vle-remove-first
 - vle-remove-last
 - vle-remove-nth
 - vle-search
 - vle-sublist
 - vle-subst-nth
 
文字列関数
- vle-string-replace V17で追加
 - vle-string-split
 - vle-edittextinplace V21.1で追加
 
数学+幾何関数
ユーティリティ関数
- vle-aci2rgb V15で追加
 - vle-alert
 - vle-atoi32
 - vle-collection->list
 - vle-compile-shape V23.1 で追加
 - vle-enableserverbusy
 - vle-fastcom
 - vle-hidepromptmenu
 - vle-int64to32
 - vle-itoa32
 - vle-lispinstall
 - vle-lispversion
 - vle-licenselevel V17で追加
 - vle-optimizer
 - vle-ping-alive
 - vle-rgb2aci V15で追加
 - vle-ucs-current * 実装予定
 - vle-ucs-isworld * 実装予定
 - vle-safearray->list
 - vle-selectionset->list
 - vle-showpromptmenu
 - vle-startapp
 
ベクトル代数関数
- vle-vector-add
 - vle-vector-angleonplane * 実装予定
 - vle-vector-angleto
 - vle-vector-angletoref
 - vle-vector-crossproduct
 - vle-vector-dotproduct
 - vle-vector-get
 - vle-vector-getperpvector
 - vle-vector-gettolerance
 - vle-vector-getucs
 - vle-vector-intersectlinewithplane * 実装予定
 - vle-vector-intersectplanewithplane * 実装予定
 - vle-vector-iscodirectional
 - vle-vector-isequal
 - vle-vector-isparallel
 - vle-vector-isperpendicular
 - vle-vector-ispointonline * 実装予定
 - vle-vector-ispointonplane * 実装予定
 - vle-vector-isunitlength
 - vle-vector-isvectoronplane * 実装予定
 - vle-vector-isxaxis
 - vle-vector-isyaxis
 - vle-vector-iszaxis
 - vle-vector-iszerolength
 - vle-vector-length
 - vle-vector-length2d
 - vle-vector-length2dxz
 - vle-vector-length2dyz
 - vle-vector-midpoint
 - vle-vector-mirrorpointatplane * 実装予定
 - vle-vector-mirrorvectoratplane * 実装予定
 - vle-vector-negate
 - vle-vector-normalise
 - vle-vector-orthoprojectpointonplane * 実装予定
 - vle-vector-orthoprojectpointonline * 実装予定
 - vle-vector-orthoprojectlinetoplane * 実装予定
 - vle-vector-projectpointonplane * 実装予定
 - vle-vector-projectpointonline * 実装予定
 - vle-vector-projectlinetoplane * 実装予定
 - vle-vector-rotatepoint * 実装予定
 - vle-vector-rotatevector * 実装予定
 - vle-vector-scale
 - vle-vector-sub
 - vle-vector-settolerance
 - vle-vector-to3d * V25.1で追加
 - vle-vector-to2d * V25.1で追加
 - vle-pointp
 
記号+定数関数
エンティティ関数
- vla-converttostaticblock V24.2 で追加
 - vla-converttoanonymousblock V24.2 で追加
 - vle-curve-getperimeter
 - vle-entget
 - vle-entmod
 - vle-get-samplepoints * 実装予定
 - vle-get-samplepointsbydistance * 実装予定
 - vla-get-xeffectivescalefactor V23.2 で追加
 - vla-get-yeffectivescalefactor V23.2 で追加
 - vla-get-zeffectivescalefactor V23.2 で追加
 - vla-getblockattributevalue V24.2 で追加
 - vla-getblockattributevalue32 V24.2 で追加
 - vla-getblockattributevalue2 V24.2 で追加
 - vla-getblockattributevalue232 V24.2 で追加
 - vle-getgeomextents
 - vle-dictsearch
 - vle-dictionary-list
 - vle-ename-valid
 - vle-entget-m
 - vle-entget-massoc V16で追加
 - vle-entmod-m
 - vle-dictobjname
 - vle-is-curve V23.1 で追加
 - vla-put-xeffectivescalefactor V23.2 で追加
 - vla-put-yeffectivescalefactor V23.2 で追加
 - vla-put-zeffectivescalefactor V23.2 で追加
 - vla-setblockattributevalue V24.2 で追加
 - vla-setblockattributevalue32 V24.2 で追加
 - vla-setblockattributevalue2 V24.2 で追加
 - vla-setblockattributevalue232 V24.2 で追加
 - vle-sunid V23.1 で追加
 - vle-table-list
 - vle-tblsearch
 
ファイル関数
- vle-compile-shape * V23.1 で追加
 - vle-file-encoding * V22.1 で追加
 - vle-file->list
 - バイナリファイル読み込み関数
- リトルエンディアン
 - vle-read-int8
 - vle-read-int16
 - vle-read-int32
 - vle-read-int64
 - vle-read-uint8
 - vle-read-uint16
 - vle-read-uint32
 - vle-read-uint64
 - vle-read-float
 - vle-read-double
 - vle-read-string
 - ビッグエンディアン
 - vle-read-int8-be
 - vle-read-int16-be
 - vle-read-int32-be
 - vle-read-int64-be
 - vle-read-uint8-be
 - vle-read-uint16-be
 - vle-read-uint32-be
 - vle-read-uint64-be
 - vle-read-float-be
 - vle-read-double-be
 
 - バイナリファイル書き込み関数
- リトルエンディアン
 - vle-write-int8
 - vle-write-int16
 - vle-write-int32
 - vle-write-int64
 - vle-write-uint8
 - vle-write-uint16
 - vle-write-uint32
 - vle-write-uint64
 - vle-write-float
 - vle-write-double
 - vle-write-string
 - ビッグエンディアン
 - vle-write-int8-be
 - vle-write-int16-be
 - vle-write-int32-be
 - vle-write-int64-be
 - vle-write-uint8-be
 - vle-write-uint16-be
 - vle-write-uint32-be
 - vle-write-uint64-be
 - vle-write-float-be
 - vle-write-double-be
 
 
データタイプ関数
トランザクション+表示関数
VLEの記号と定数
- vle-extensions-active : VLEライブラリの有無を示す : VLE機能が利用可能な場合はT、そうでない場合はNIL
 - vle_g_vecTol : (vle-vector-xxx)関数の幾何公差のプリセット、1e-10としてプリセットされる