IOS系統中加載CAD圖紙的方法,蘋果系統中瀏覽和編輯DWG


Xcode開發環境搭建 

 
安裝解壓控件xcode開發包

從我們官網下載“ MxDraw6.0iOs(20160923)TryVersion.exe”文件是個windows的rar自解壓縮包,在Windows系統上,雙擊它解壓,得到所有例子文件,開發庫文件,如下:

xcode1.png

把解壓的目錄,拷到MAC電腦上。

 
 
運行控件自帶的例子

運行Xcode軟件,打開控件例子, SRC\MxDraw6.0\Ios\Test\Test.xcodeproj ,如:

2.png

目前控件提供的開發包,只有真機運行的開發庫,所以需要在MAC電腦上,連接iPhone手機,然后選擇它,點運行即可。

15162413747297605.png

 
 
新建ios工程

運行Xcode軟件,點新建工程,如下:

xcode4.png

點擊:“ Next”按鈕,輸入工程名MyTest,然后“Next”

xcode5.png

工程路徑選擇控件安裝目錄下的Ios目錄:

xcode6.png

點擊 Create 創建工程完成。

 
 
工程設置

設置 Other Linker Flags 增加連接設置 ,如下:

-lsisl -lTD_Alloc -lTD_Root -lTD_DbRoot -lTD_Db -lTD_Ge -lTD_Gs -lTD_Gi -lTD_SpatialIndex -lTD_ExamplesCommon -lRecomputeDimBlock -lRasterProcessor -lModelerGeometry -lModelerCommands -lRxRasterServices -lTD_Br -lTD_BrepRenderer -lTD_AcisBuilder -lTD_PdfExport -lTD_PDFToolkit -lstsflib -lqpdf -lsisl -lpcre

 

如下抓圖:

xcode7.png

 

設置 Library Search Paths 庫文件搜索路徑,如下:

  $(SRCROOT)/../../../3rdparty/ODA/lib/iphone
  $(SRCROOT)/../../../MxDraw6.0/prebuilt/iphone/release

 

如下抓圖:

額而發1.png

 

設置 User Header Search Paths 頭文件搜索路徑 ,如下:

  $(SRCROOT)/../../../3rdparty/cocos2dx/cocos2d
  $(SRCROOT)/../../../3rdparty/cocos2dx/cocos2d/cocos
  $(SRCROOT)/../../../3rdparty/cocos2dx/cocos2d/external
  $(SRCROOT)/../../../3rdparty/cocos2dx/cocos2d/cocos/platform
  $(SRCROOT)/../../../3rdparty/cocos2dx/cocos2d/cocos/platform/ios
  $(SRCROOT)/../../../3rdparty/cocos2dx/cocos2d/cocos/editor-support
  $(SRCROOT)/../../../3rdparty/cocos2dx/cocos2d/external/glfw3/include/mac
  $(SRCROOT)/../../MxInc

 

如下抓圖:

xcode9.png

 

設置C語庫使用:

xcode10.png

 

設置C++庫使用:

xcode11.png

 

設置 C++語言宏定義:

Debug定義:

  DEBUG=1 $(inherited) CC_TARGET_OS_IPHONE USE_FILE32API COCOS2D_DEBUG=1
  CC_ENABLE_CHIPMUNK_INTEGRATION=1 _MX_MACOSX _MXDRAW_SUPPORT_DWG

 

Release定義:

  CC_TARGET_OS_IPHONE USE_FILE32API COCOS2D_DEBUG=0
  CC_ENABLE_CHIPMUNK_INTEGRATION=1 _MX_MACOSX _MXDRAW_SUPPORT_DWG

 

如下抓圖:

xcode12.png

 

禁用Bitcode:

xcode15.png

 

增加連需要庫文件,在 SRC\MxDraw6.0\prebuilt\iphone\release 目錄下,

  libcocos2d iOS.a libMxArx60iOS.a libMxBase60iOs.a libMxBaseEx60iOs.a
  libMxDraw60iOS.a libMxDwg60iOS.a libMxFile60iOS.a libMxGe60iOS.a
  libMxKernel60iOS.a libMxPlatform60 IOS.a

 

如下圖:

xcode13.png

xcode14.png

 
 
增加夢想文件

拷貝 SRC\MxDraw6.0\Ios\Test\fonts 目錄,到 SRC\MxDraw6.0\Ios\MyTest\fonts 。

拷貝 SRC\MxDraw6.0\Ios\Test\mxdrawui 目錄,到 SRC\MxDraw6.0\Ios\MyTest\mxdrawui 。

把font目錄和mxdrawui目錄當前資源增加 Xcode工程中,如下:

xcode16.png

 

拷貝 SRC\MxDraw6.0\Ios\Test\Test\code 目錄,到 SRC\MxDraw6.0\Ios\MyTest\MyTest\code 目錄。

在工程上,鼠標右鍵,在彈出菜單 上,點擊“Add Files to "MyTest"”,把code下的文件增加到當前工程,如下:

15162442085669294.png

 

把文件ViewController.m改名為ViewController.mm,並在Xcode工程中,刪除ViewController.m文件的引用,然后增加ViewController.mm。

禁用新增加的ARC功能,使用 -fno-objc-arc 標志,如下:

xcode18.png

 
 
調用夢想cad

在新建的工程 UI增加一個按鈕,並在按鈕事件響應里調用如下代碼,顯示MxCAD:

修改ViewController.mm文件:

  #import "platform/ios/CCEAGLView-ios.h"
  #import "cocos2d.h"
  #import "mxcode/MxAppDelegate.h"
  #import "mxcode/RootViewController.h"
  RootViewController* viewController = nullptr;
  CCEAGLView *eaglView = nullptr;
  static MxAppDelegate s_sharedApplication;

 

在按鈕點擊事件里,顯示 MxCAD代碼:

  - (IBAction)click:(UIButton *)sender {
      
      if(viewController == nullptr)
      {
          
          cocos2d::Application *app = cocos2d::Application::getInstance();
          s_sharedApplication.InitMxProtocol();
          app->initGLContextAttrs();
          cocos2d::GLViewImpl::convertAttrs();
   
          eaglView = [CCEAGLView viewWithFrame: [UIScreen mainScreen].bounds
                                   pixelFormat: (NSString*)cocos2d::GLViewImpl::_pixelFormat
                                   depthFormat: cocos2d::GLViewImpl::_depthFormat
                            preserveBackbuffer: NO
                                    sharegroup: nil
                                 multiSampling: NO
                               numberOfSamples: 4 ];
          
   
          [eaglView setMultipleTouchEnabled:YES];
          
         
          viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
          viewController.wantsFullScreenLayout = YES;
          viewController.view = eaglView;
          
       
          cocos2d::GLView *glview = cocos2d::GLViewImpl::createWithEAGLView(eaglView);
          cocos2d::Director::getInstance()->setOpenGLView(glview);
          
          
          app->run();
          
          cocos2d::Director::getInstance()->getEventDispatcher()->addCustomEventListener("returnCAD", [=](cocos2d::EventCustom* eve)
                                                                                         {
                                                                                             //call you return ;
                                                                                             
                                                                                             
                                                                                             [self present];
                                                                                             
                                                                                         });
          
      } 
      [self presentViewController:viewController animated:YES completion:nil];
  }

 

所有工作已經完成,再在可以編譯運行了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM