BricsCAD における LISP API の仕様追加・変更履歴

提供:GizmoLabs - だいたい CAD LISP なサイト

BricsCAD における LISP の仕様追加・変更履歴 は以下の通り。


追える分だけ書いてってるので他にもあったら教えて下さい。
  • 基本的に BricsCAD 独自の機能についてそれに対応する API も実装されていってる方向性。 >> BricsCADのLISP
  • COM(ActiveX)の実装は vla-get-xxx, vla-set-xxx が使えるようになると思ってOK。
  • Fast-COM の実装は Windows OSの場合、対応するCOM関数が(勝手に)爆速になると思ってOK。Linux、Macでは vla-xxx が利用可能になるメリット。
  • 最適化処理で、ロード時、コンパイル時にコードが(勝手に)効率化されると思ってOK。


V25.1 (V2.0)

  • getcfgsetcfg 関数からプロファイルの値を設定・取得可能に。


3D Constraints API関数を追加


新しい Fast-COM 関数(Windows/Linux/Mac)


ExpressToolsのAPI関数を追加


Civil 3D インターフェイスのための新しい BricsCAD固有の LISP関数

Civil3D 点変換関数

Civil3Dの点変換に関連するすべての関数は、接頭辞 「civil:converter-」を使用する(「civil:get-converter 」を除く)。


変換関連機能


Civil3D 点グループ関数

すべての Civil3D 点グループ関連関数は、接頭辞 「civil:pgroup-」 を使用する。

点グループは、点グループのフィルタリストで定義された条件とフィルタリングに一致する Civil3D 点エンティティの論理的なコレクションである。

各点グループには一意の名前と、関連する 64 ビット整数の「ハンドル」があり、dwg データベース内に格納される; Lispインターフェースは、文字列名と64ビット整数の 「ハンドル 」の両方をサポートしている。

Lispインターフェースは、点グループにアクセスするための文字列名と64ビット整数の 「ハンドル 」の両方をサポートしている。「_All points 」名を使用する点グループは常に存在し、すべてのCivil3D 点エンティティを含む。

この特別なグループは変更できない(読み取り専用)。点グループ関連関数では、フィルタ定義のクエリや変更を含め、1 つの 点グループをクエリおよび編集できる:


"PointGroups" は、dwgデータベース内に格納されているすべての点グループ オブジェクトのコレクションで、点グループオブジェクトの作成、照会、編集、削除を行うことができる。


グループ関連関数


Civil3D 点関数

すべての Civil3D 点関連関数は、接頭辞 「civil:point-」 を使用する。

Civil3D 点はカスタムエンティティとして表現され、番号、名前、生の説明、完全な説明、東経(X)、北緯(Y)、標高(Z)のような多くのプロパティによって定義され、ラベルスタイル、ラベル回転、ラベル位置、ラベルドラッグ、ラベルピン留め、シンボルスタイル、シンボル回転のようないくつかの仕様を使用する。


各点は 0以上の一意な番号を持ち(負の値は許されない)、dwgデータベース内に格納された64ビット整数の 「ハンドル 」によってアクセスされる; Lisp インターフェースは、64 ビット整数の「ハンドル」を使用して Point にアクセスし、プロパティを読み書きする。

Civil3D 点 は、点グループのフィルタリストに基づき、複数の 点グループのメンバになることができます。

点 関連関数を使用すると、1 つの Civil3D 点を照会および編集できる:

点 関連関数


V24.2 (V.1.9)

Windows + Linux + Mac用のLISP FastCOM関数を追加


BIM プロパティセットと属性セット インターフェースに新しい LISP BIM 関数を追加。

Civil Tinサーフェス インターフェイスに新しいLISP関数を追加

地理座標系インターフェースに新しい LISP 関数を追加

V24.1 (V.1.8)

名前空間とプロパティセットを管理するための新しい LISP BIM関数を追加


ローカル・アンドゥ操作をサポートする BricsCAD固有の LISP関数を追加

V23.2.05 (V.1.7)

IFCのBIMタイプをサポートするために、名前ベースのBIM分類用の新しいLISP BIM関数が追加された。

ExpressTools API の関数が追加された


Linux + Mac用の拡張VLA機能(プロパティ + メソッド)(Windowsでは「Fast-COM」として使用可能)


V23.n (V.1.6)

多くのマイナーな不具合とグリッチが修正された (Reformat/Beautify, LISPINIT=0 モードへの対応, ...).

IFC BIMタイプに対応するため、名前ベースのBIM分類のための新しいLISP BIM関数が追加された。

3D拘束と機械部品機能に新しい関数ファミリーを追加

  • Mechanical コンポーネント
    • 3D Constraints Groups (3D拘束グループ)
    • 3D Constraints (3D拘束)
    • 3D Constraints Parameters (3D拘束パラメータ)
    • Rhino Import & Export

BricsCAD専用のLisp関数を追加 :

新しい VLE 関数の追加 :


V22.n (V.1.5)

  1. BLADE LISP IDE : 多くの問題、不具合、グリッチが修正され、"Syntax & Variables" ダイアログの拡張、参照するLispファイルの解析とレポートができるようになったことで、デバッグがより簡単になった。
  2. デバックが大幅に高速化された。(最大5倍)
  3. プリロードされたLispファイルのデバッグ(BLADE&Debugger外でロードされたもの)が可能になった。(大きめプログラム作ってたりすると割と重要)
  4. vla-postcommand 追加
  5. 拡張VLA機能 (プロパティ+メソッド)Linux + Mac用の追加(Windowsの "Fast-COM "にも対応)
 AddObject  AddPViewPort  AddXrecord  AppendInnerLoop
 AppendOuterLoop  AssociativeHatch  AttachmentPoint
 BackgroundFill
 ColorIndex  ColorMethod  ConfigName  CustomScale
 Description  DimensionLineColor  DimTxtDirection  Display  DisplayScrollBars
 EntityColor  Explode  ExtensionLineColor
 FontFile  Freeze
 GetBlockTableRecordId  GetBlockTableRecordId32  GetBlockTableRecordId2
 GetBlockTableRecordId232  GetCanonicalMediaNames
 GetCellTextStyle  GetCellTextHeight  GetCustomScale
 GetName  GetObject  GetPaperMargins
 GetPaperSize  GetLoopAt  GetPlotDeviceNames  GetProjectFilePath
 GetWindowToPlot  GetXData
 InsertLoopAt
 LastHeight  LayerOn  Lock  LockPosition
 MTextAttribute  NumberOfLoops
 ObliqueAngle
 PaperUnits  Plottable  PolarPoint
 RefreshPlotDeviceInfo  Remove  Rename  Replace
 SetBlockTableRecordId  SetBlockTableRecordId32  SetBlockTableRecordId2
 SetBlockTableRecordId232  SetCellTextHeight
 SetCellTextStyle  SetCustomScale
 SetProjectFilePath  SetWindowToPlot
 StandardScale  StyleSheet  SetXData
 TabOrder  Target  TextAlignmentPoint  TextBackgroundFill
 TextPosition  TextColor
 Used  UseStandardScale
 ViewportDefault  ViewportOn
 XScaleFactor  YScaleFactor  ZScaleFactor


拡張BIM API機能(V22.2以降)

マテリアルハンドリングとIFCファイルのインポート/エクスポートのための拡張BIM API機能(V22.2以降)

bim:ifc-exportfile
bim:ifc-importfile
bim:dlg-profiles
bim:get-all-availablematerials
bim:get-all-usedmaterials
bim:has-material
bim:get-material
bim:save-material
bim:delete-material

Linux + Mac向けの拡張DOSLibの実装(V22.2以降)

dos_deltree 


新しく追加された VLE 関数

vle-file-encoding


BLADE の改善と追加

Syntax & Variables" ダイアログが改善された。 選択されたファイルまたはDEFUNスコープに対して、選択されたファイル/DEFUNの実行に必要なすべての参照Lispファイルをリストボックスで表示するようになった。 これにより、読み込む必要のある必須 Lisp ファイルコードの概要を素早く把握することができる。

さらに、リストボックス内のファイルをダブルクリックすると、「構文と変数」ダイアログが開き、ダブルクリックした Lisp ファイルを解析することができるようになった。


デバッギングが大幅に高速化

デバッガに関するいくつかの改良(メモリ管理、データおよびコードのブレークポイント処理)により、Lispコードがデバッガで処理される際のパフォーマンスが大幅に改善された。 DebugStep モード (SingleStep, StepOver) が微調整され、より一貫性があり予測可能な動作に改善された。 CodeBreakPointsが同じ行のコードで何度もトリガーされることがなくなった。


もう一つの重要な改良点

プリロードされたLispファイル(BLADEおよびデバッガ外でBricsCADにロード)のデバッグが可能になった。 BLADEデバッガは、StepIntoデバッグステップモード、アクティブコード、データ、システム変数のブレークポイントから、プリロードされたLispコードのHalt操作を自動的に認識し、デバッガ下でLispファイルコードを自動的に動的にロードし、すべてのグローバル変数の上書きを防ぎ、ロード時のLispコードを実行しない(Lispファイルがすでにロードされているので、アプリケーションロジックを保持)ようにした。 これにより、Lispコードのデバッグがかつてないほど簡単になり、事実上フールプルーフになった。

最後に、多くの視覚的な不具合が修正された。

V21.n (V.1.4)

  1. BLADE が UTF-8/16でエンコードされたLispをより適切にサポートするようになった。ソースファイルのエンコーディングをBOM付きUTF-8/16で使用することが推奨されている。(エンコードなしのプレーンANSIも可)
  2. DEScoderv2.9 の搭載、「コード圧縮」に関する問題とデバッグのサポート。
  3. ジェネリックプロパティ関数が追加。
  4. TinSurface関数が追加。(BricsCAD独自)
  5. SheetSetManager 関連関数が追加。
  6. 以下の Linux + Mac用拡張VLA機能(プロパティ+メソッド)の追加(Windowsの "Fast-COM "にも対応)
AddItems  Alignment  BasePoint  Boolean  Coordinate DirectionVector  MajorAxis
MajorRadius  MinorAxis  MinorRadius  RadiusRatio  SecondPoint  SectionSolid  SliceSolid 
Type  XVector  YVector

Linux + Mac用の拡張DOSLib実装

dos_strtokens  dos_strtrim  dos_strtrimleft  dos_strtrimright

VLE-関数の追加

 vle-edittextinplace

新しい BricsCAD BIMインターフェース機能

新しい「スペース」コンセプトに関連する新しい BricsCAD BIMインターフェース機能

bim:get-allspaces  bim:get-space  bim:get-isspacevalid  bim:get-isspaceupdated
bim:get-spacenumber  bim:get-spacearea  bim:get-spaceboundaryents
bim:get-spacerepresentation  bim:set-spacenumber  bim:set-spacerepresentation
bim:create-space  bim:update-space

BLADE の改良と追加

リソースタブは、常に新しい LISP Core Functions ブランチを表示し、「コンソール」、「Lisp/DES ファイル」、「BRX/NET ファイル」を使用して、ロードされたすべてのファイルと、定義されたすべての DEFUN 関数とコマンドを文書化するようになった。 また、(他の Lisp/BRX/NET ファイルに上書きされたため)無効となった DEFUN 名も表示される。 エラーが発生した Lisp ファイルは赤色で表示され、定義された DEFUN 関数はエラーが発生するまでロードされたものとして表示される。

Lispファイル(.lsp, .des)はBLADE外部で読み込むことができ、デバッグに使用することができる。 (DEScoder v2.9で作成されたDES暗号化Lispファイルにも対応)

V20.n (V.1.3)

  1. 全体的な Lisp のパフォーマンス改善。特に大幅に深くネストされた+再帰関数のようなコンテキスト、VLRデータベース +オブジェクトリアクター;
  2. (vl-annotative-xxx) 注釈スケールを処理するための関数セットが追加 (BricsCAD独自)
  3. セキュリティ関連のシステム変数:SecureLoadLegacyCodeSearchTrustedPaths に関する挙動が明確に。
  4. VLA メソッドの追加 > ActiveProfile, CanonicalMediaName, CopyProfile, DeleteProfile, ExportProfile, ImportProfile, ObjectId32ToObjectIdString, QNewTemplateFile,

RenameProfile, ResetProfile, SendModelessOperationStart, SendModelessOperationEnded, TemplateDwgPath, GetBoundingBox

  1. DOSLib エミュレーション関数の追加 > dos_copy, dos_mkdir
  2. VLE 関数の追加 > vle-cadrassoc

BLADE の改善と追加

  • BLADE : AutoComplete リストが SystemVariables と COM Properties + Methods もサポートするようになった。
  • BLADE : 起動時およびAutoCompleteリストの初期表示時のパフォーマンスを改善
  • BLADE : "Lisp & DCL" メニューに、( dlg-sysvars ) Lisp関数としてアクセス可能な、新しい "System Variables" ダイアログを提供。
  • BLADE : 「リソース」タブで、「外部関数」呼び出しと「未知/未解決関数」呼び出しのカテゴリを常に表示するようになった。
  • BLADE : すべてのツールチップ(マウスホバー時、オートコンプリートリスト、コード入力時)で、実際のLisp関数の位置を表示するように変更。
  • 内部構文データベースがすべての Standard-AutoLISP 関数に対応し、関連するツールチップを提供。

V19.n (V.1.1, V.1.2)

19 - BLADE の大幅強化。IDEっぽさが高くなった。細部について多くの改善がなされ .NETのような多くの便利な機能によって拡張された。

  • 編集済みおよび編集+保存されたテキスト行に赤/緑のラインマーカーを追加
  • ホットキー/ショートカットエディタを追加し、好みのキーコンビネーションを定義できるようになった。
  • 検索ダイアログで「プロジェクト内検索」をサポート。
  • エディターツールチップで構文ヘルプとユーザーコメントを表示。
  • デバッギング : システム変数をブレークポイントとして使用できるようになった。
  • デバッギング : ブレーク式で、値だけでなく「変数」も使用できるようになった。
  • NEW:エディターウィンドウをドック解除し、フローティングエディターとして使用可能(エディターウィンドウの位置に応じて、独自のメニューとツールバーを部分的に使用)。
  • NEW:コード部分、ファイル、プロジェクト全体のLisp構文と変数使用状況を分析するための「構文と変数のチェック」モードレスダイアログを追加。
  • NEW:リストとツリーのテキストサイズを「エディタのテキストサイズ」の75%に変更し、環境設定に従ったビジュアル表現を実現。
  • 改善: 「Edit-while-Debug」での再同期ロジックを改良し、エディターとデバッガーのビジュアライゼーションをより一貫性のあるものになった。


19.2 - LISPプロファイラー が BLADE に統合された。

  • デバッグ時にデバッグツールバーの「プロファイラ」チェックボックスを使用すると、統合されたプロファイラが有効になり、プロファイリングの結果がこの新しいタブに表示されます(プロファイラビューを切り替えるコンテキストメニューも提供される)。
  • オートコンプリートリストにも「シンタックスヒント」が表示されるようになった。
  • 検索/置換ダイアログの改良と修正を行った。
  • 「インスペクター "ダイアログで選択されたオブジェクトの変更を検出し、視覚化する "リアルタイムモニター "を追加した。
  • 「インスペクタ "ダイアログで、2D/3Dポリラインの頂点エンティティ、およびBlockReferenceの属性のスクロールができるようになった。
  • "シンタックスと変数 "は、意図的にグローバルであるため、変数リストにリストされるべきではない特定の変数を抑制する "フィルタ "を提供するようになりました(カンマで区切った複数のエントリーをサポート。ワイルドカード文字を含むこともできます。フィルタエントリーはBricsCAD/BLADEセッション間で持続されます。)
  • VLE関数ライブラリ("vle-emulation.lsp "ファイルによるエミュレーションを含む)をベクトル関数セットの最初のステージ用に拡張(作業中)。
  • DESCoder v2.8 に更新 > コマンドライン引数でスペースが含まれるファイル名またはフォルダー名の問題改善。


V18.n (V.1.0, V.1.1)

  1. V18.2 からLISPエディター&デバッガーの BLADE を搭載。
  2. DCL関数サポートに関する BricsCAD固有の詳細に関するドキュメントを追加。
  3. V18.2以降、LISP BIMインターフェースはBIMの「部屋」を扱う「Rooms」機能をサポート。
    • BricsCAD BIM LISPインターフェイスを拡張し、新しい建築要素タイプに対応。
    • BIMオブジェクトのすべてのプロパティ(PropertiesPanelに表示)にLISP BIM関数でアクセスできるようになった。
    • V18.2以降、LISP BIMインターフェースは、「カテゴリー化」プロパティをサポート。カテゴリーが指定されていない場合、V17と互換性のあるbcBimCategoryBricsysとbcBimCategoryIFC2x3カテゴリーを結合したデフォルトbcBimCategoryStandardが使用される。
    • さらに、bcBimCategoryIFCCustom および bcBimCategoryUser カテゴリでは、カスタム データ(IFC 名前空間またはプレーン「ユーザー」名前空間)を任意の BIM 分類オブジェクトに添付することができる。
  4. 18.2 - VLX名前空間のサポート。DEScoder v2.7
  5. 18.2 - DOSLibエミュレーション関数の追加 > dos_command, dos_fileex
  6. 18.2 - inspector 関数追加


V17.n (V.0.9.9, V.1.0)

  1. 17.2.07 - BIM LISP 関数群が追加される。(BricsCAD独自)
  2. AutoLISP 関数の追加:(layerstate-restore), (layerstate-save), (layerstate-export), (layerstate-import), (layerstate-getlastrestored),(layerstate-importfromdb), (layerstate-removelayers)
  3. COM のメソッドの追加。> GetBlockTableRecordId32,SetBlockTableRecordId32, GetBlockTableRecordId232, SetBlockTableRecordId232, GetBlockAttributeValue32, SetBlockAttributeValue32, GetBlockAttributeValue232, SetBlockAttributeValue232, GetFieldId32, SetFieldId32, GetFieldId232, SetFieldId232, GetGridLinetype32, SetGridLinetype32
  4. VLE 関数の追加 > vle-string-replace, vle-displayupdate, vle-licenselevel
  5. VL- 関数の追加 > vl-vplayer-set-color, vl-vplayer-set-truecolor, vl-vplayer-set-linetype, vl-vplayer-set-lineweight, vl-vplayer-set-transparency, vl-vplayer-get-color, vl-vplayer-get-linetype, vl-vplayer-get-lineweight, vl-vplayer-get-transparency
  6. Fast-COM のプロパティとメソッドの追加。> AddMLeader, Columns, CopyFrom, EntityTransparency, Erase, GetText, GetTextHeight, GetDynamicBlockProperties, HeaderSuppressed, Justification, MLineScale, PropertyName, RegenerateTableSuppressed, Rows, SetText, SetTextHeight, StyleName, TitleSuppressed, ToolPalettePath, Value, GetMinimumColumnWidth, GetMinimumRowHeight, GetColumnWidth, SetColumnWidth, GetRowHeight, SetRowHeight, ColumnWidth, RowHeight
  7. AutoCAD AutoLISP との互換性を高めるために、ほとんどの Lisp COM 関数 (vlax-get/put-property ...)、(vla-get-xxx ...)、(vla-put-xxx ...) が COM 固有の Variants/SafeArrays だけでなく、"普通の" Lisp データ型も入力として受け付けるようになった。
  8. ExpressTools の関数追加 > acet-geom-arbitrary-x, acet-layerp-mode, acet-layerp-mark
  9. ExpressTools の(内部的)関数追加 > acet::acos, acet::arc-point-list, acet::pl-point-list, acet::expandfn, acet::filetype, acet::nameonly, acet::pathonly

V16.n (V.0.9.8)

  1. 16.2 - SheetMetal LISP 関数群が追加される。(BricsCAD独自)
  2. Lisp 関数(BricsCAD独自)の追加 >(grfill), (grarc
  3. VLE関数(BricsCAD独自)の追加 > (vle-list-massoc), (vle-entget-massoc)
  4. DOSLibエミュレーション関数の追加。>(dos_encrypt),(dos_getdir),(dos_dir),(dos_dirtree),(dos_getfilem
  5. Fast-COM のプロパティとメソッド追加 : AppendItems, AbortTransaction, Block, Display, DisplayLocked, Drafting, EffectiveName, EndTransaction, Files, GetBulge, GetExtensionDictionary, GetVariable, GraphicsWinLayoutBackgrndColor, GraphicsWinModelBackgrndColor, GetWeight, GetWidth, InsertMenuInMenuBar, LayoutCreateViewport, Load, Unload, Menus, MenuGroups, MenuBar, ModelType, NumTransactions, OpenSave, Output, Pdf, Preferences, Profiles, PatternType, PatternName, PatternAngle, PatternScale, PatternSpace, PatternDouble, RemoveItems, SetWeight, SetWidth, SetPattern, Selection, SetVariable, SetBitmaps, StartTransaction, SupportPath, System, SetBulge, ShowPlotStyles, Toolbars, User, VisualStyle


V15.n (V.0.9.7)

  1. エラー処理関数(BricsCAD独自)が追加。(vl-bt), (vl-bt-on), (vl-bt-off), bcad$disable-extended-error
  2. VLE関数(BricsCAD独自)の追加。(vle-aci2rgb), (vle-rgb2aci)
  3. Fast-COM のプロパティとメソッドの追加。> HasAttributes, IsRational, IsPeriodic, Degree, PromptString, TagString, TextString
  4. DOSLib のエミュレーション関数を実装開始。(Linux + Mac でも使えるようにしたいということらしい)
  5. DEScoder.exe をバージョン 2.6 に更新。(不具合修正)


V14.n (V.0.9.7)

  1. ExpressTools の 関数(acet-)を追加。


V12.n (V.0.9.6)

  1. 12.2 - OpenLispCoreバージョンを 9.1 に更新。(LISP プログラムが ~40% 程度高速化)
  2. 12.2 - Fast-COM 関数群を追加。COM のエミュレーション。
  3. 12.2 - VLE 関数ライブラリ(BricsCAD独自)の追加。(vla-関数のようなもの。)
  4. 12.2 - LISPオプティマイザー。(コードのボトルネックになっている部分を効率化してくれるらしい。)
  5. 12.1 - ObjectDbx.AxDbDocumentインターフェースがLISPエンジンに追加