相关推荐
您可能对下面课程感兴趣
AutoCAD.NET API2018教程

88小节已有99396人学过

Solidworks二次开发教程

115小节已有155338人学过

autocad如何调用deepseek api
发布时间:2025-02-26 11:07 [ 我要自学网原创 ] 发布人: samohu 阅读: 2588

以下是在 AutoCAD 中通过 AutoLISP 调用 DeepSeek API 的完整实现方案(基于 ActiveXObject 技术):

lisp
(defun c:CallDeepSeekAPI ()
    (setq url "https://api.deepseek.com/v1/generate")
    (setq apiKey "YOUR_DEEPSEEK_API_KEY") ; 替换为您的API密钥
    (setq prompt "A realistic digital painting of a cyberpunk cityscape at night, vibrant neon lights, rain reflections, 8k ultra-detailed") ; 输入您的提示词
    
    ;; 创建 HTTP 请求对象
    (setq objXMLHTTP (vlax-create-object "MSXML2.XMLHTTP.6.0"))
    
    ;; 准备请求参数
    (setq postData (strcat "{\"prompt\":\"" prompt "\"}"))
    (setq contentType "application/json")
    (setq authorizationHeader (strcat "Bearer " apiKey))
    
    ;; 初始化请求
    (objXMLHTTP-open objXMLHTTP "POST" url)
    (objXMLHTTP-setRequestHeader objXMLHTTP "Content-Type" contentType)
    (objXMLHTTP-setRequestHeader objXMLHTTP "Authorization" authorizationHeader)
    
    ;; 发送请求
    (objXMLHTTP-send objXMLHTTP postData)
    
    ;; 等待响应完成
    (while (= (objXMLHTTP-readystate objXMLHTTP) 3)
        (princ "加载进度...")
        (sleep 100)
    )
    
    ;; 处理响应
    (if (= (objXMLHTTP-status objXMLHTTP) 200)
        (progn
            (setq jsonResponse (vlax-safestring objXMLHTTP-responsetext))
            (setq base64Image (cdr (assoc "data" (vlax-json-parsejson jsonResponse))))
            
            ;; 显示图像(需要安装 Base64 图像显示组件)
            (command "_.INSERT" base64Image "" "" "" "" "")
        )
        (alert (strcat "请求失败,状态码:" (number-to-string (objXMLHTTP-status objXMLHTTP))))
    )
    
    ;; 释放对象
    (vlax-release objXMLHTTP)
    (princ)
)

;; Base64 解码辅助函数
(defun base64Decode(base64Str)
    (setq xmlDOM (vlax-create-object "Msxml2.DOMDocument.6.0"))
    (setq node (xmlDOM.createElement "tmp"))
    (node.data = base64Str)
    (setq binaryData (node.nodeTypedValue))
    (setq byteArray (vlax-copyarray binaryData))
    (binary-to-base64 byteArray)
)

;; 注意:需要额外实现 binary-to-base64 函数或使用第三方库

使用说明:

  1. 需要先安装以下组件:

    • Microsoft XML v6.0 (通过控制面板安装)
    • AutoCAD 2010+ 支持 ActiveXObject
  2. 获取 DeepSeek API 密钥:

    • 访问 DeepSeek API  注册开发者账号
    • 创建应用后获取 API Key
  3. 调整参数:

    • 修改 url 变量为对应API端点
    • 更新 apiKey  prompt 为实际值
    • 根据API文档调整 Content-Type 和其他请求头
  4. 显示图像:

    • 当前代码假设有 Base64 图像显示组件支持
    • 实际使用时可能需要将 Base64 数据转换为 DWG 插入对象
    • 推荐使用 Base64 Image Converter  等工具扩展功能

常见问题处理

  1. 权限错误:
lisp
(alert "请检查API密钥是否有效,确保已启用API访问权限")     
  1. 跨域限制:
lisp
;; 添加CORS代理服务器地址
(setq url "https://your-cors-proxy.com/" url)          
  1. 内存泄漏:
lisp
;; 在循环调用时添加
(vlx-registry-delete "MSXML2.XMLHTTP.6.0")      

高级用法扩展方向:

  1. 添加进度条:
lisp
(dlmCreateProgressBar)      
  1. 多线程处理:
lisp
(vlx-async-execution)      
  1. 自动保存结果:
lisp
(command "_.SAVEAS" (strcat "D:\\DeepSeek_Images\\" (getvar "SYSDATE")) ".png")      

注意:由于AutoLISP的安全限制,某些现代API可能需要使用更底层的COM接口或通过 .NET 编写外部应用程序来实现完整功能。对于复杂需求建议改用 AutoCAD .NET API 或 Python 脚本配合 AutoCAD COM 接口。

AutoCAD2025视频教程
我要自学网商城 ¥100 元
进入购买
文章评论
0 条评论 按热度排序 按时间排序 /350
遵守中华人民共和国的各项道德法规,
承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。
参与本评论即表明您已经阅读并接受
上述条款。
V
特惠充值
联系客服
APP下载
官方微信
返回顶部
相关推荐
您可能对下面课程感兴趣
AutoCAD.NET API2018教程

88小节已有99396人学过

Solidworks二次开发教程

115小节已有155338人学过

分类选择:
电脑办公 平面设计 室内设计 室外设计 机械设计 工业自动化 影视动画 程序开发 网页设计 会计课程 兴趣成长 AIGC