当前位置: 首页 > news >正文

Cura源码在Ubuntu15.04上编译脚本(成功)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Cura是著名的3D打印切片和控制软件。新的版本采用Qt和Python进行了重构,界面变化也非常大,目前还在开发中,运行问题还有不少。这里介绍如何从源代码进行Cura的编译,可以抢先体验新版的界面设计和根据需要进行订制。

这个把相关的脚本都集成到一起了。做了几个重要的改进,基本可以成功运行了。

官方原脚本在这里:https://github.com/Ultimaker/cura-build

主要的改进包括:

1、可以自动判断目录,如没有自动创建,如有则进行源码更新。原脚本安装后更新需要手工一步步进行,很麻烦。

2、改变gtest的安装源到github,原来的是从google下载,由于国内访问不到会导致编译出错。

3、合并 plugins目录,将Uranium\plugins复制到Cura\plugins下,避免找不到插件的错误。

注意:

1、进libArcus将Cmakelists.txt里的add_subdirectory(examples)这一行注释掉,要不编译不过去。
2、目前CuraEngine编译还有些问题,无法执行切片操作。

把下面的内容保存到cura.sh,然后sudo chmod +x cura.sh添加执行权限,然后./cura.sh就Ok了。需要的软件会自动下,时间较长,需要耐心等待。

#!/bin/bash
# This is a script which get the latest git repo and build them.
#
# Tested under ubuntu 15.04, lower versions don't have PyQT 5.2.1 which is required by cura

cd ~
if [ ! -d "dev" ]; then
    mkdir dev
fi
cd dev

sudo apt-get install -y git cmake cmake-gui autoconf libtool python3-setuptools curl python3-pyqt5.* python3-numpy qml-module-qtquick-controls

#protobuf.
#https://github.com/google/protobuf.git

echo "================================="
echo "Install Protobuf."
if [ ! -d "protobuf" ]; then
    git clone https://github.com/Ultimaker/protobuf.git
    cd protobuf
else
    cd protobuf
    git pull        
fi
echo "================================="
echo "get gtest."
if [ ! -d "gtest" ]; then
    git clone https://github.com/kgcd/gtest.git
else
    git pull
fi
echo "================================="
echo "get gmock."
if [ ! -d "gmock" ]; then
    git clone https://github.com/krzysztof-jusiak/gmock.git
else
    git pull        
fi
echo "Build Protobuf."
./autogen.sh
./configure --prefix=/usr
make -j4
sudo make install
sudo ldconfig
cd python
python3 setup.py build
sudo python3 setup.py install
cd ../..

echo "================================="
echo "Install libArcus."
if [ ! -d "libArcus" ]; then
    git clone https://github.com/Ultimaker/libArcus
    cd libArcus
else
    cd libArcus
    git pull        
fi
if [ ! -d "build" ]; then
  mkdir build
fi
cd build
#cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages
cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages
make -j4
sudo make install
cd ../../

echo "================================="
echo "Install CuraEngine."
if [ ! -d "CuraEngine" ]; then
    git clone https://github.com/Ultimaker/CuraEngine.git
    cd CuraEngine
else
    cd CuraEngine
    git pull        
fi
if [ ! -d "build" ]; then
  mkdir build
fi
cd build
#cmake .. -DCMAKE_INSTALL_PREFIX=/usr
cmake .. 
make -j4
sudo make install
cd ../../

echo "================================="
echo "Install Uranium."
if [ ! -d "Uranium" ]; then
    git clone https://github.com/Ultimaker/Uranium.git
    cd Uranium
else
    cd Uranium
    git pull        
fi
if [ ! -d "build" ]; then
  mkdir build
fi
cd build
#cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages -DURANIUM_PLUGINS_DIR=/usr/lib/python3.4/dist-packages
cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages -DURANIUM_PLUGINS_DIR=/usr/lib/python3.4/dist-packages
sudo make install
cd ../..

echo "================================="
echo "Install Cura."
if [ ! -d "Cura" ]; then
    git clone https://github.com/Ultimaker/Cura.git
    cd Cura
else
    cd Cura
    git pull        
fi
cd ..
echo "Build finished."

echo "============================================================================"
echo "Merge Resource into Cura/resources/"
cp -rv Uranium/resources/* Cura/resources/
echo "Merge Plugins into Cura/plugins/"
cp -rv Uranium/plugins/* Cura/plugins/
echo "Link:"$PWD"/CuraEngine/build/CuraEngine"
sudo ln -s $PWD/CuraEngine/build/CuraEngine /usr/bin/CuraEngine

echo "Starting Cura......"
cd Cura
python3 cura_app.py
echo "You need add to /etc/profile:export PYTHONPATH=/usr/lib/python3/dist-packages"
echo "============================================================================="


转载于:https://my.oschina.net/u/2306127/blog/488543

相关文章:

  • SPOJ - CHICAGO 106 miles to Chicago(乘积最短路)
  • HTML5之FileReader的使用
  • LeetCode 202 Happy Number(floyd判圈算法(龟兔赛跑算法))
  • css3 中text-align:justify
  • HDU-1503 Advanced Fruits(LCS)
  • LightOJ-1253 Misere Nim(Nim求解不正常的博弈)
  • python发送电子邮件模块smtplib
  • uva-1349 Optimal Bus Route Design(最小费用最大流)
  • 一个简单的通用验证类的实现
  • ZOJ-3987 Numbers 2017CCPC秦皇岛站G题 (二进制乱搞、贪心)
  • iOS开发-类簇(Class Cluster)
  • HDU-1350 Taxi Cab Scheme(最小路径覆盖)
  • codeforces-884D Boxes And Balls(思维、三叉哈夫曼树)
  • 设置c++程序的堆栈空间解决栈溢出问题
  • POJ-1932 XYZZY(判正权环路+Warlshell传递闭包)
  • [译]如何构建服务器端web组件,为何要构建?
  • Android Volley源码解析
  • extract-text-webpack-plugin用法
  • HashMap ConcurrentHashMap
  • Java Agent 学习笔记
  • Java比较器对数组,集合排序
  • JS学习笔记——闭包
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Windows Containers 大冒险: 容器网络
  • 初识 beanstalkd
  • 思否第一天
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 一天一个设计模式之JS实现——适配器模式
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​如何在iOS手机上查看应用日志
  • #define
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (03)光刻——半导体电路的绘制
  • (4.10~4.16)
  • (定时器/计数器)中断系统(详解与使用)
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (三)Honghu Cloud云架构一定时调度平台
  • (正则)提取页面里的img标签
  • (转)人的集合论——移山之道
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net Memory Profiler的使用举例
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .Net6 Api Swagger配置
  • .NET中使用Redis (二)
  • .考试倒计时43天!来提分啦!
  • [ACM] hdu 1201 18岁生日
  • [APUE]进程关系(下)
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [Editor]Unity Editor类常用方法
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE