Menu
Home
应用包
技术支持
函数库
FAQ
联系我们
开发者
先行版
Gitee
GitHub
VScode
交流网络
sd1t
作者: VitalGG
版本: 0.1.5
类别: 定向开发
安装:
@i sd1t
简介: 将dwg中的所有未划线的图框导出pdf,并合并成一个pdf
目录
#+title:顺德一拓图纸管理系统调用说明 * 功能说明 将指定dwg文件中未打X的图框输出到dwg同名的pdf文件中。 默认按 从上到下,从左到右的顺序排序。 * 运行环境 ** 操作系统及版本 win10 ** CAD平台 acad2018 2021 * API 功能 平台向CAD发送命令时,注意最后要有个空格。 ** 设计人签名 cad内部函数 #+begin_src lisp (sd1t:sign-desiner "小明") #+end_src 外部调用,python示例 #+begin_src python acadapp.ActiveDocument.SendCommand('(sd1t:sign-desiner "小明") ') #+end_src ** 审核人签名 cad内部函数 #+begin_src lisp (sd1t:sign-auditor "小红") #+end_src 外部调用,python示例 #+begin_src python acadapp.ActiveDocument.SendCommand('(sd1t:sign-auditor "小红") ') #+end_src ** 批准人签名 cad内部函数 #+begin_src lisp (sd1t:sign-confirm "老张") #+end_src 外部调用,python示例 #+begin_src python acadapp.ActiveDocument.SendCommand('(sd1t:sign-confirm "老张") ') #+end_src ** 签章及导PDF cad内部函数 #+begin_src lisp (sd1t:export-pdf) #+end_src 外部调用,python示例 #+begin_src python acadapp.ActiveDocument.SendCommand('(sd1t:export-pdf) ') #+end_src * 部署及测试说明 ** 在CAD中部署 将以下代码复制到 CAD 命令行内,回车即可开始安装。 (在代码行里用鼠标点右侧按扭复制,然后到CAD命令行内,右键粘贴或Ctrl+V) #+begin_src lisp (progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""cn/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get-property o'ResponseText)))(@::load-module "pkgman")(@::package-install "sd1t")) #+end_src ** 使用python包管理部署 首次使用需安装基本运行环境 本软件用python完成部署,操作系统中需要安装python3 1. 安装 atlisp 管理包 #+begin_src shell pip3 install atlisp #+end_src 2. 将 atlisp 核心安装到CAD #+begin_src shell atlisp i #+end_src 3. 安装 sd1t 应用 #+begin_src shell atlisp pull sd1t #+end_src 4. 测试 *首次运行时需下载相应的软件和文件而中途退出。可等几分钟后再试* 到测试目录下运行call-cad.py 选择测试图, 等待完成 #+begin_src shell py call-cad.py #+end_src * 调用方式 全过程示例 以及对接系统平台调用这个程序采用的方式 为 acad.application(ActiveX) ** call-cad.py python版的调用示例 #+begin_src python import win32com.client import tkinter as tk from tkinter import filedialog import time root = tk.Tk() root.withdraw() # 隐藏主窗口 file_path = filedialog.askopenfilename(title="选择文件", filetypes=(("DWG文件","*.dwg"),("ALL","*.*"))) def waitforcad(acadapp): try: while (not acadapp.GetAcadState().IsQuiescent): print(".",end="") time.sleep(3) except: print("e",end="") time.sleep(3) waitforcad(acadapp) #创建或取得ACAD应用ActiveX acadapp =win32com.client.Dispatch("AutoCAD.Application") # 等待CAD忙完 waitforcad(acadapp) # 打开要处理的文件,可能的问题,高版本或错误的dwg acadapp.Documents.Open(file_path) # 等待CAD忙完 waitforcad(acadapp) #导出dwg中未打X的图框到dwg同名pdf文件 acadapp.ActiveDocument.SendCommand('(sd1t:export-pdf) ') # 等待CAD忙完 waitforcad(acadapp) #关闭退出ACAD acadapp.ActiveDocument.Close(False) acadapp.Quit() #+end_src ** call-cad.ps1 powershell 的调用示例 #+begin_src powershell $acadapp = New-Object -ComObject AutoCAD.application # 等待CAD忙完 while (! $acadapp.GetAcadState().IsQuiescent){ Start-Sleep -s 1 } $acadapp.Documents.Open("D:\Projects\PDF开发\样例.dwg") # 等待CAD忙完 while (! $acadapp.GetAcadState().IsQuiescent){ Start-Sleep -s 1 } $acadapp.ActiveDocument.SendCommand('(sd1t:export-pdf) ') while (! $acadapp.GetAcadState().IsQuiescent){ Start-Sleep -s 1 } $acadapp.ActiveDocument.Close($False) while (! $acadapp.GetAcadState().IsQuiescent){ Start-Sleep -s 1 } $acadapp.Quit() #+end_src * 版权声明 sd1t.lsp 代码著作权归甲方(开发费用结清后)。 sd1t 调用的已有产品,甲方只享有使用权。 调用的产品如下: - @lisp 及 @lisp函数库著作权归乙方所有。atlisp.cn - pdftk free版的著作权归它们的原作者所有。pdftk.com - iconv.exe 为GNU软件。gnu.com
主页
应用
支持
我