Skip to main content

autolisp

Write, review, debug, and validate AutoLISP or DCL for AutoCAD-MCP using the shipped guidance and autolisp-validate development tool.

インストールへ移動

ソース情報

リポジトリ
andagni/autocad-mcp
ソースの最終更新活動
2026年7月29日 06:47
検出された SKILL.md の言語
英語
スター
3
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
13 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
autolisp
description
Write, review, debug, and validate AutoLISP or DCL for AutoCAD-MCP using the shipped guidance and autolisp-validate development tool.
# AutoLISP Skill Use this skill when a task requires AutoLISP or DCL source. Use `autocad-mcp` for shipped read, write, and plot operations. Handwritten AutoLISP is appropriate when the requested behavior is outside that public tool surface. Do not replace a shipped `autocad-mcp` operation with hand-written AutoLISP during normal drawing work. ## Working sequence 1. Read the target project's loader, command entry points, and existing naming conventions. 2. State the intended host: full AutoCAD, an AutoCAD console process, or a source-only validation environment. 3. List every drawing mutation, system variable, external file, and non-built-in function the routine will use. 4. Keep the worker independent of prompts where practical. Add a `c:` wrapper only when interactive input is required. 5. Localize temporary bindings after `/` in each `defun`. 6. Restore changed state and close any undo boundary on success, cancellation, and error paths. 7. Validate every changed `.lsp` file and inspect warnings in the context of the real input range: ```text autolisp-validate path/to/file.lsp ``` From this repository, the equivalent development command is `cargo run -p autolisp-validate -- path/to/file.lsp`. The validator reports parenthesis errors and a deliberately small set of AutoLISP-specific convention hazards. A clean result is not execution evidence; run host-dependent code in the exact supported AutoCAD environment. ## Choosing an API - Use the entity functions for current-drawing records when their contract covers the operation. - In full AutoCAD on Windows, ActiveX may be appropriate after explicit `(vl-load-com)` initialization. - Do not assume an interactive application object, dialog, editor selection, or prompt is available in a console process. - Keep launch, file-opening, save, and exit behavior outside the drawing worker so they can be verified separately. See `references/06_execution_contexts_and_headless.md` before writing code that must run without the full UI. ## Command shape A command should make ownership of state visible. This small shape is a review aid, not a drop-in implementation: ```lisp (defun c:ACMCP_SAMPLE (/ *error* previous_echo) (setq previous_echo (getvar "CMDECHO")) (defun *error* (message) (if previous_echo (setvar "CMDECHO" previous_echo)) (if (and message (not (wcmatch (strcase message) "*CANCEL*,*QUIT*,*EXIT*"))) (prompt (strcat "\nACMCP_SAMPLE failed: " message))) (princ)) (setvar "CMDECHO" 0) ;; Call a separately tested worker here. (setvar "CMDECHO" previous_echo) (princ)) ``` Adapt the cleanup to the resources the real routine acquires. If the command starts an undo group, opens a file, loads a dialog, or creates a COM object, its cleanup path must own that resource explicitly. ## DCL boundary For a DCL dialog: - give each interactive tile a unique `key`; - resolve the DCL file path rather than relying on an undeclared support path; - reject a failed `load_dialog` or `new_dialog`; - set initial state and callbacks before entering the dialog loop; - copy accepted values out before applying drawing changes; and - unload every successfully loaded dialog. Read `references/05_dcl_dialogs.md` and `references/dcl/reference-dcl-summary.md` for the maintained subset. Consult the current Autodesk reference for attributes or platform support not documented there. ## Reference routing | Need | File | |---|---| | Command structure and cleanup | `references/01_core_playbook.md` | | Entities and selection sets | `references/02_entity_and_selection_cookbook.md` | | Validator-backed failure patterns | `references/03_pitfalls_and_failure_modes.md` | | Persistent drawing records | `references/04_object_model_and_internals.md` | | DCL integration | `references/05_dcl_dialogs.md` | | GUI and console boundaries | `references/06_execution_contexts_and_headless.md` | | DCL names used by this skill | `references/dcl/reference-dcl-summary.md` | | Source and rights record | `references/README.md` and `references/documentation-provenance.json` |
GitHubで見る