程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> AutoCAD 自動管理字體插件[使用ObjectARX C++]

AutoCAD 自動管理字體插件[使用ObjectARX C++]

編輯:C++入門知識

概述:

使用AutoCAD的過程中,我們常常因為缺失字體而煩惱,本插件就是為了解決這個問題。

插件采用WEB服務器 + CAD插件方式。WEB服務器使用Python編寫,部署在百度BAE上;CAD插件使用C++開發,在AutoCAD中使用命令“APPLOAD”加載該插件。

在CAD中打開新的DWG文檔後,插件會自動比較DWG文檔所需字體以及CAD的Font目錄下的字體,如果有缺失字體,則自動到WEB服務器下載;如果有服務器上沒有的字體,就悄悄上傳到服務器。

下載:

源代碼:

https://github.com/Xiongpq/FontCenter

編譯源代碼需要ObjectARX,請自行下載。

客戶端:

http://pan.baidu.com/s/1pJPk6mR

下載客戶端後,可以在AutoCAD中,輸入“APPLOAD”命令加載相應的Warrentech.FontCenter.Client.arx文件即可加載該插件。請注意AutoCAD不同版本應該加載不同的DLL,例如:AutoCAD 2008 32位,應加載2008_X86文件夾下的DLL。

主要代碼:

一、在LoadDwg時添加處理字體代碼

客戶端使用C++編寫,調用AutoCAD的ObjectARX C++ API,在AutoCAD的事件中使用多線程做字體的下載及上傳,下面是主要的代碼:



二、獲取當前DWG文檔需要的字體名稱

使用ObjectARX接口獲取



三、獲取本地字體列表

獲取本地AutoCAD安裝目錄下Font文件夾下已存在的字體列表。



四、下載缺失字體

插件使用curl類庫做HTTP請求,到WEB服務器下載需要的文件。服務器上的字體文件全都是ZIP文件,所以下載下來後,需要解壓。另外,如果沒有下載到需要的字體,則會通過WEB服務器的report_missing_cad_font這個API,報告服務器。



五、上傳客戶端字體到服務器

服務器端雖然預置了2000多種AutoCAD字體,但仍然不是最全面的,所以如果客戶端存在服務器端沒有的字體,插件就會上傳該字體到服務器。

首先,將本地字體名稱列表POST到服務器,服務器會比較服務器上的字體列表,並將需要上傳的字體列表通過JSON數據返回。

然後,客戶端收到字體列表後,將需要上傳的字體壓縮打包,通過WEB API上傳到服務器端。











		
		

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved