• <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)
            国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 久久狠狠爱亚洲综合影院| 久久乐国产精品亚洲综合| 久久人妻少妇嫩草AV蜜桃| 少妇无套内谢久久久久| 99久久国产亚洲高清观看2024| 日本精品久久久久中文字幕8| 99久久精品国产一区二区蜜芽| 亚洲国产精品无码久久久久久曰| 久久WWW免费人成一看片| 国产99久久久国产精免费| 久久成人小视频| 9191精品国产免费久久| 精品国产日韩久久亚洲| 久久这里只精品国产99热| 久久久久国产精品嫩草影院| 91久久精品无码一区二区毛片| 狠狠色丁香久久婷婷综合_中 | 久久精品国产欧美日韩99热| 久久99精品久久久久久久不卡| 久久午夜综合久久| 狠狠干狠狠久久| 欧洲人妻丰满av无码久久不卡| 国产成人久久精品麻豆一区| 久久精品国产亚洲AV无码娇色| 无码国内精品久久人妻麻豆按摩| 久久久国产精品福利免费| 午夜天堂精品久久久久| 欧美激情精品久久久久久久九九九| 久久精品无码一区二区三区| 久久丫精品国产亚洲av| 亚洲欧美日韩久久精品| 日本精品久久久久影院日本| 99久久婷婷国产一区二区| 国产精品久久国产精品99盘| 久久久久久久97| 精品久久久久久无码专区| 久久香综合精品久久伊人| 日韩精品久久久久久免费| 久久久av波多野一区二区| 人妻精品久久久久中文字幕69|