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

提供:GizmoLabs - だいたい CAD LISP なサイト
2023年1月28日 (土) 09:48時点におけるGizmon (トーク | 投稿記録)による版

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


追える分だけ書いてってるので他にもあったら教えて下さい。
  • 基本的に BricsCAD 独自の機能についてそれに対応する API も実装される方向性で実装されていってる。 >> BricsCADのLISP
  • COMの実装は vla-get-xxx,vla-set-xxx が使えるようになると思ってOK。
  • Fast-COM の実装は、対応するCOM関数が爆速になると思ってOK。

V23.1.02 (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.1 (V.1.5)

  1. BLADE LISP IDE : 多くの問題、不具合、グリッチが修正され、"Syntax & Variables" ダイアログの拡張、参照するLispファイルの解析とレポートができるようになったことで、デバッグがより簡単になった。
  2. デバックが大幅に高速化された。(最大5倍)
  3. プリロードされたLispファイルのデバッグ(BLADE&Debugger外でロードされたもの)が可能になった。(大きめプログラム作ってたりすると割と重要)
  4. 拡張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


マテリアルハンドリングと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インターフェース機能

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. SecureLoad"、"LegacyCodeSearch"、"TrustedPaths" に関する挙動が明確に。
  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-sysvar) Lisp関数としてアクセス可能な、新しい "System Variables" ダイアログを提供。
  • BLADE : 「リソース」タブで、「外部関数」呼び出しと「未知/未解決関数」呼び出しのカテゴリを常に表示するようになった。
  • BLADE : すべてのツールチップ(マウスホバー時、オートコンプリートリスト、コード入力時)で、実際のLisp関数の位置を表示するように変更。
  • 内部構文データベースがすべての Standard-AutoLISP 関数に対応し、関連するツールチップを提供。

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

  1. 19 - BLADE の大幅強化。IDEっぽさが高くなった。
  2. 19.2 - LISPプロファイラー が BLADE に統合された。
  3. 19.2 - DESCoder v2.8 に更新 > コマンドライン引数でスペースが含まれるファイル名またはフォルダー名の問題改善。


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

  1. 18.2 - LISPエディター&デバッガーの BLADE を搭載。
  2. 18.2 - BIM LISP(BricsCAD独自)で「部屋」に関連した関数を追加。
  3. 18.2 - VLX名前空間のサポート。DEScoder v2.7
  4. 18.2 - DOSLibエミュレーション関数の追加 > dos_command, dos_fileex


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エンジンに追加