• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            編譯QCAD

            Posted on 2018-06-03 20:53 eryar 閱讀(2670) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 6.Others

            編譯QCAD

            eryar@163.com

            目前開(kāi)源的二維CAD有QCAD、LibreCAD等,且LibreCAD可以說(shuō)是QCAD的分支版本。對(duì)比這款開(kāi)源軟件,發(fā)現(xiàn)QCAD的功能與操作習(xí)慣和AutoCAD更接近。LibreCAD是純C++開(kāi)發(fā),而QCAD使用了Qt的Script模塊,使用了C++和Javascript腳本兩種開(kāi)發(fā)方式。我覺(jué)得使用腳本來(lái)擴(kuò)展功能比純C++開(kāi)發(fā)效率會(huì)高點(diǎn),因?yàn)檫@些開(kāi)源項(xiàng)目源碼都很大,編譯比較花時(shí)間。如果使用腳本來(lái)開(kāi)發(fā)的話,沒(méi)有編譯時(shí)間,可以邊寫(xiě)腳本邊測(cè)試,很方便。

            下面兩個(gè)分別是LibreCAD和QCAD中顯示圖形屬性的界面,可以看到QCAD感覺(jué)更好。

            wps_clip_image-25075

            Figure 1. LibreCAD Main GUI

            wps_clip_image-10281

            Figure 2. QCAD Main GUI

            QCAD的編譯很簡(jiǎn)單,從 https://github.com/qcad/qcad 下載源碼后,就可以直接編譯了。其依賴的相關(guān)第三方庫(kù)都已經(jīng)包含在源碼中。下面就以在Windows操作系統(tǒng)中使用VS2008來(lái)編譯QCAD-3.20.1.2為例來(lái)說(shuō)明其編譯需要注意的問(wèn)題。考慮到Qt4相關(guān)的dll文件較少,所以選擇Qt4.8.6和Visual Studio2008來(lái)編譯QCAD。

            在VS中使用Qt可以使用QtVSAddin,安裝好QtVSAddin后會(huì)在VS的菜單上出現(xiàn)一個(gè)Qt菜單:

            wps_clip_image-3384

            Figure 3. QtVSAddin Menu in VS2008

            從Qt插件的菜單中的Open Qt Project File來(lái)打開(kāi)qcad源碼文件中的qcad.pro,會(huì)生成qcad.sln的VS解決方案文件,并在VS2008打開(kāi)了解決方案。

            wps_clip_image-7778

            Figure 4. QCad source code in VS2008

            編譯到RScriptHandlerEcma.cpp文件時(shí),遇到幾個(gè)QPrinterInfo靜態(tài)函數(shù)的問(wèn)題,因?yàn)閝cad-3.20.1.2中推薦使用Qt5.5.1,而這幾個(gè)靜態(tài)函數(shù)是從Qt5.3版本才引入的。所以找到Qt5.3中相關(guān)的源碼,把關(guān)于QPrinterInfo的幾個(gè)靜態(tài)函數(shù)在這里重寫(xiě)。從字面上看這幾個(gè)函數(shù)是與打印相關(guān)的,如果不使用打印相關(guān)功能,可以直接把這幾個(gè)錯(cuò)誤注釋掉。

            因?yàn)閝cad與界面相關(guān)的功能都是用JavaScript腳本實(shí)現(xiàn),所以還需要編譯Qt的腳本實(shí)現(xiàn)。找到源碼的src目錄中的3rdparty文件夾中與Qt版本對(duì)應(yīng)的qt-labs-qtscriptgenerator,里面會(huì)已經(jīng)生成了VS的解決方案。直接用VS打開(kāi)解決方案,全部編譯即可。

            wps_clip_image-13200

            wps_clip_image-15602

            wps_clip_image-7482

             Figure 5.編譯qt script

            編譯成功后,文件都會(huì)生成在指定的目錄中,直接打開(kāi)源碼下面的debug文件中的qcad.exe即可以運(yùn)行QCAD了。

            wps_clip_image-16781

            Figure 6. 運(yùn)行編譯的QCAD

             



            為了方便大家在移動(dòng)端也能看到我的博文和討論交流,現(xiàn)已注冊(cè)微信公眾號(hào),歡迎大家掃描下方二維碼關(guān)注。
            Shing Liu(eryar@163.com)
            欧美777精品久久久久网| 99久久综合国产精品免费| 精品久久香蕉国产线看观看亚洲 | 精品一区二区久久| 青草影院天堂男人久久| 一本久久精品一区二区| 精品久久久久久国产潘金莲| 国产免费久久精品99久久| 亚洲午夜久久久久久久久久| 青青草原综合久久| 亚洲精品无码久久一线| 日韩AV毛片精品久久久| 免费观看久久精彩视频| 7777久久久国产精品消防器材| 国产精品成人99久久久久| 日韩人妻无码精品久久免费一 | 2020久久精品亚洲热综合一本| 久久精品国产亚洲AV无码娇色| 久久久久久久综合日本| 久久99精品久久久久久动态图| 久久人人超碰精品CAOPOREN| 91精品国产色综久久| 久久精品中文无码资源站| 久久人人爽人人爽人人片AV麻烦 | www.久久精品| 久久精品aⅴ无码中文字字幕重口| 亚洲人成无码www久久久| 国内精品伊人久久久久| 久久99国产综合精品免费| 国产精品乱码久久久久久软件| 久久精品无码专区免费| 色综合久久中文综合网| 久久国产精品99久久久久久老狼| 久久久精品国产sm调教网站 | 国产精品日韩欧美久久综合| 久久福利青草精品资源站免费 | 久久青青草视频| 三级片免费观看久久| 久久这里的只有是精品23| 亚洲另类欧美综合久久图片区| 久久精品无码一区二区三区日韩|