• <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 閱讀(2669) 評(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í)間,可以邊寫腳本邊測(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ù)在這里重寫。從字面上看這幾個(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)
            国产一区二区精品久久岳| 久久婷婷是五月综合色狠狠| 一级做a爰片久久毛片16| 狠狠人妻久久久久久综合蜜桃| 一本色道久久88综合日韩精品 | 久久96国产精品久久久| 久久久久久国产精品美女 | 国产成人久久激情91| 国内精品伊人久久久久影院对白| 伊色综合久久之综合久久| 久久99精品国产一区二区三区| 婷婷久久综合九色综合九七| 久久99精品久久久久久久不卡| 亚洲精品美女久久久久99小说| 久久亚洲国产精品一区二区| 亚洲国产美女精品久久久久∴| 亚洲国产成人久久精品99| 亚洲国产精品人久久| 中文字幕无码精品亚洲资源网久久| 久久99精品国产麻豆不卡| 高清免费久久午夜精品| 亚洲色欲久久久综合网| 伊人 久久 精品| 蜜臀久久99精品久久久久久| 久久综合丁香激情久久| 久久亚洲精品成人AV| 大香伊人久久精品一区二区| 久久这里只有精品视频99| 99久久精品免费看国产一区二区三区| 国产∨亚洲V天堂无码久久久 | 欧美精品一区二区精品久久| 久久久久久午夜成人影院| 国产aⅴ激情无码久久| 久久久亚洲裙底偷窥综合| 亚洲人成无码久久电影网站| 久久久中文字幕日本| 久久人人超碰精品CAOPOREN| 久久最新免费视频| 伊人久久亚洲综合影院| 久久久精品人妻一区二区三区蜜桃| 麻豆久久久9性大片|