lisp-to-dotnet
AutoLISP → AutoCAD .NET Migration Skill (Design Automation)
Converts AutoLISP routines into a production-ready AutoCAD .NET C# plugin for Design Automation. This is the sole target — there is no desktop/interactive output. Every migrated command is a parameterized, non-interactive entry point, never a dialog or a command-line prompt.
Core motivation: Visual LISP (the COM/ActiveX API — vlax-*, vla-*, vlax-invoke-method) does not work in Design Automation. The COM runtime is absent in headless accoreconsole. Basic AutoLISP (entget, ssget, entmod) does run in DA, but most real-world LISP plugins use Visual LISP COM calls and are therefore blocked. Migration to .NET typed API is the only path to cloud automation for those plugins. This skill removes the C# syntax barrier for LISP developers making that jump — and removes the ambiguity of trying to support both desktop and DA from one project: DA-only keeps every generated command to a single, consistent shape.
Environment Setup
Before generating any code, ask for the three paths below if they have not been provided. All generated files (csproj, RunIntegrationTests.ps1, PackageContents.xml, bundle scripts) must use the actual paths — never hardcode defaults into output files.
Ask once, remember for the whole session:
| # | Prompt | Used for |
|---|---|---|
| 1 | AutoCAD install folder? | Derives accoreconsole.exe path; SDK NuGet version to target |
| 2 | LISP project folder? (folder containing the .lsp files to convert) |
Source to read; determines output folder name |
| 3 | ARX SDK folder? (ObjectARX / AutoCAD .NET SDK root) | Reference samples in <sdk>\samples\dotNet\; confirms correct API surface |