Skip to content

Commit e55c5ee

Browse files
committed
Merge branch 'release/0.6.0'
2 parents 2f9229e + 40a3054 commit e55c5ee

File tree

188 files changed

+10829
-3900
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

188 files changed

+10829
-3900
lines changed

.github/workflows/ci.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: CI
2+
3+
on: [push]
4+
5+
jobs:
6+
ci:
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
os: [ubuntu-latest]
11+
#os: [ubuntu-latest, macos-latest]
12+
13+
runs-on: ${{matrix.os}}
14+
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v2
18+
with:
19+
path: 'source'
20+
fetch-depth: 0
21+
lfs: 'false'
22+
23+
- name: Cache Qt
24+
id: cache-qt
25+
uses: actions/cache@v1
26+
with:
27+
path: ../Qt
28+
key: ${{ runner.os }}-QtCache
29+
30+
- name: Install Qt
31+
uses: jurplel/install-qt-action@v2
32+
with:
33+
cached: ${{ steps.cache-qt.outputs.cache-hit }}
34+
35+
- name: Install OpenCascade[Ubuntu]
36+
if: startsWith(matrix.os, 'ubuntu')
37+
run: |
38+
sudo apt-get -y install libocct-data-exchange-dev libocct-draw-dev
39+
GH_CASCADE_INC_DIR=`dpkg -L libocct-foundation-dev | grep -i "Standard_Version.hxx" | sed "s/\/Standard_Version.hxx//i"`
40+
GH_CASCADE_LIB_DIR=`dpkg -L libocct-foundation-dev | grep -i "libTKernel.so" | sed "s/\/libTKernel.so//i"`
41+
echo "GH_CASCADE_INC_DIR=$GH_CASCADE_INC_DIR" >> $GITHUB_ENV
42+
echo "GH_CASCADE_LIB_DIR=$GH_CASCADE_LIB_DIR" >> $GITHUB_ENV
43+
44+
- name: Install OpenCascade[macOS]
45+
if: startsWith(matrix.os, 'macos')
46+
run: |
47+
brew install opencascade
48+
GH_CASCADE_BASE_DIR=`brew --cellar opencascade`
49+
GH_CASCADE_VERSION=`brew info opencascade | grep -E --only-matching --max-count=1 "[0-9]\.[0-9]\.[0-9]"`
50+
echo "GH_CASCADE_INC_DIR=$GH_CASCADE_BASE_DIR/$GH_CASCADE_VERSION/include/opencascade" >> $GITHUB_ENV
51+
echo "GH_CASCADE_LIB_DIR=$GH_CASCADE_BASE_DIR/$GH_CASCADE_VERSION/lib" >> $GITHUB_ENV
52+
53+
- name: Get count of CPU cores
54+
uses: SimenB/github-actions-cpu-cores@v1
55+
id: cpu-cores
56+
57+
- name: Create Build folder
58+
run: mkdir ${{github.workspace}}/build
59+
60+
- name: QMake
61+
working-directory: ${{github.workspace}}/build
62+
run: |
63+
echo CASCADE_INC_DIR=${{env.GH_CASCADE_INC_DIR}}
64+
echo CASCADE_LIB_DIR=${{env.GH_CASCADE_LIB_DIR}}
65+
qmake ../source CASCADE_INC_DIR=${{env.GH_CASCADE_INC_DIR}} CASCADE_LIB_DIR=${{env.GH_CASCADE_LIB_DIR}} CONFIG+=withtests
66+
67+
- name: Build
68+
working-directory: ${{github.workspace}}/build
69+
run: |
70+
make -j${{steps.cpu-cores.outputs.count}}
71+
72+
- name: Execute Unit Tests[Ubuntu]
73+
if: startsWith(matrix.os, 'ubuntu')
74+
working-directory: ${{github.workspace}}/build
75+
env:
76+
DISPLAY: :0
77+
run: |
78+
Xvfb $DISPLAY -screen 0 1280x1024x24 &
79+
sleep 5s
80+
./mayo --runtests
81+
82+
- name: Execute Unit Tests[macOS]
83+
if: startsWith(matrix.os, 'macos')
84+
working-directory: ${{github.workspace}}/build
85+
run: |
86+
./mayo.app/Contents/MacOS/mayo --runtests

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ build-*
33
*.user.*
44
installer/setupvars.iss
55
installer/Output
6+
custom.pri

.travis.yml

Lines changed: 0 additions & 14 deletions
This file was deleted.

README.md

Lines changed: 85 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,97 @@
1-
<p align="center">
2-
<img src="images/appicon_256.png" width="200px" align="center" />
3-
</p>
4-
1+
<div align="center">
2+
3+
[![CI](https://github.com/fougue/mayo/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/fougue/mayo/actions/workflows/ci.yml)
54
[![Build status](https://ci.appveyor.com/api/projects/status/6d1w0d6gw28npxpf?svg=true)](https://ci.appveyor.com/project/HuguesDelorme/mayo)
6-
[![Build Status](https://img.shields.io/travis/fougue/mayo/develop.svg?logo=travis)](https://app.travis-ci.com/fougue/mayo)
5+
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d51f8ca6fea34886b8308ff0246172ce)](https://www.codacy.com/gh/fougue/mayo/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=fougue/mayo&amp;utm_campaign=Badge_Grade)
6+
[![Downloads](https://img.shields.io/github/downloads/fougue/mayo/total.svg)](https://github.com/fougue/mayo/releases)
77
[![License](https://img.shields.io/badge/license-BSD%202--clause-blue.svg)](https://github.com/fougue/mayo/blob/develop/LICENSE.txt)
8+
[![Version](https://img.shields.io/badge/version-v0.6.0-blue.svg?style=flat)](https://github.com/fougue/mayo/releases)
9+
10+
</div>
811

9-
# What is Mayo
10-
Mayo is an opensource 3D CAD viewer and converter
11-
12-
# Overview
13-
* View and convert 3D files in different formats
14-
* Explore assembly trees(product structure) and view properties
15-
* Cross platform: runs on Windows, Linux and macOS
16-
* Underlying toolkits: OpenCascade and Qt
17-
18-
# Current features
19-
* 3D exploding of the model tree, allowing better exploration of complex designs
20-
* 3D clip planes with configurable capping
21-
* 3D view cube providing intuitive camera manipulation
22-
* Save image(snapshot) of the current 3D view
23-
* Quick access to the CAD files recently open thanks to thumbnails in the Home page
24-
* Toggle visibility of any item from the Model tree(use checkbox)
25-
* Customizable precision of the meshes computed from BRep shapes, affecting visualization quality and conversion into mesh formats
26-
* Convert files to multiple CAD formats from command-line interface(CLI)
27-
28-
3D viewer operations :
29-
* Rotate : mouse left + move
30-
* Pan : mouse right + move
31-
* Zoom : mouse wheel(scroll)
32-
* Window zoom : mouse wheel + move
33-
* Instant zoom : space bar
34-
* Select Object: mouse left click
35-
* Select Objects: SHIFT + mouse left clicks
36-
37-
# Supported formats
38-
Formats | Import | Export | Notes
39-
--------------------------|-----------|----------|------------------------------
40-
STEP | &#10004; | &#10004; | AP203, 214, 242(some parts)
41-
IGES | &#10004; | &#10004; | v5.3
42-
OpenCascade BREP | &#10004; | &#10004; |
43-
DXF | &#10004; | &#10060; |
44-
OBJ | &#10004; | &#10004; | Import requires OpenCascade &#8805; v7.4.0<br>Export requires OpenCascade &#8805; v7.6.0
45-
glTF | &#10004; | &#10004; | Import requires OpenCascade &#8805; v7.4.0<br>Export requires OpenCascade &#8805; v7.5.0<br>Supports 1.0, 2.0 and GLB
46-
VRML | &#10060; | &#10004; | v2.0 UTF8
47-
STL | &#10004; | &#10004; | ASCII/binary
48-
AMF | &#10060; | &#10004; | v1.2 Text/ZIP<br>Requires [gmio](https://github.com/fougue/gmio) &#8805; v0.4.0
49-
50-
Mayo provides precise control over [import](https://github.com/fougue/mayo/wiki/Import-parameters-by-CAD-format) and [export](https://github.com/fougue/mayo/wiki/Export-parameters-by-CAD-format) with many parameters per format.
51-
52-
# Gallery
53-
54-
<img src="doc/screencast_1.gif"/>
12+
<div align="center">
13+
<img src="images/appicon_256.png" alt="Logo" width="128px" align="center" />
14+
<p></p>
15+
<p align="center"><strong>Mayo</strong> the opensource 3D CAD viewer and converter</9>
16+
<p></p>
17+
<img src="doc/screencast_1.gif"/>
18+
</div>
5519

56-
<img src="doc/screencast_cli.gif"/>
20+
## :eyeglasses: Overview
21+
- **Convert 3D files** <br/>
22+
Mayo can read/write 3D files from/to STEP, IGES, STL and many other [CAD formats](https://github.com/fougue/mayo/wiki/Supported-formats)
23+
24+
- **Visualize 3D files** <br/>
25+
Mayo 3D viewer supports clip planes, exploding of assemblies, measurement of shapes, show/hide parts, ...
26+
27+
- **Cross platform** <br/>
28+
Mayo runs on Windows, Linux and macOS
29+
30+
- **Solid foundations** <br/>
31+
Mayo is developed in modern C++ with [Qt](https://www.qt.io) and [OpenCascade](https://dev.opencascade.org)
32+
33+
## :zap: Features
34+
- **3D clip planes** with configurable capping
35+
36+
- **3D exploding of the model tree** allowing better exploration of complex designs
37+
38+
- **3D measure tools** for circles, angles, lengths, areas, ...
39+
40+
- **3D view cube** providing intuitive camera manipulation
41+
42+
- **Quick access to CAD files** recently open thanks to thumbnails in the [Home page](https://github.com/fougue/mayo/blob/develop/doc/screenshot_5.png)
43+
44+
- **Toggle item visibility** within the Model tree(use checkbox)
45+
46+
- **Customizable mesh precision** for BREP shapes, affecting visualization quality and conversion into mesh formats
5747

48+
- **Convert files** to multiple CAD formats from [command-line interface](https://github.com/fougue/mayo/blob/develop/doc/screencast_cli.gif):computer:
49+
50+
## :floppy_disk: Supported formats
51+
Format | Import | Export | Notes
52+
----------|--------------------|--------------------|------------------
53+
STEP | :white_check_mark: | :white_check_mark: | AP203, 214, 242
54+
IGES | :white_check_mark: | :white_check_mark: | v5.3
55+
BREP | :white_check_mark: | :white_check_mark: | OpenCascade format
56+
DXF | :white_check_mark: | :x: |
57+
OBJ | :white_check_mark: | :white_check_mark: |
58+
glTF | :white_check_mark: | :white_check_mark: | 1.0, 2.0 and GLB
59+
VRML | :x: | :white_check_mark: | v2.0 UTF8
60+
STL | :white_check_mark: | :white_check_mark: | ASCII/binary
61+
AMF | :x: | :white_check_mark: | v1.2 Text/ZIP
62+
PLY | :white_check_mark: | :white_check_mark: | ASCII/binary
63+
Image | :x: | :white_check_mark: | PNG, JPEG, ...
64+
65+
See also this dedicated [wikipage](https://github.com/fougue/mayo/wiki/Supported-formats) for more details
66+
67+
## :mag: 3D viewer operations
68+
69+
Operation | Mouse/Keyboard controls
70+
---------------|--------------------------
71+
Rotate | mouseLeft + move
72+
Pan | mouseRight + move
73+
Zoom | mouseLeft + mouseRight + move
74+
Zoom +/- | mouseWheel(scroll)
75+
Window zoom | CTRL + mouseLeft + move
76+
Instant zoom | spaceBar
77+
Select Object | mouseLeft click
78+
Select Objects | SHIFT + mouseLeft clicks
79+
80+
Mayo supports also multiple 3D viewer navigation styles to mimic common CAD applications(CATIA, SOLIDWORKS, ...)
81+
82+
## :hammer: How to build Mayo
83+
[Instructions for Windows MSVC](https://github.com/fougue/mayo/wiki/Build-instructions-for-Windows-MSVC)
84+
[Instructions for Debian](https://github.com/fougue/mayo/wiki/Build-instructions-for-Debian)
85+
[Instructions for macOS](https://github.com/fougue/mayo/wiki/Build-instructions-for-macOS)
86+
87+
## :clapper: Gallery
88+
89+
<img src="doc/screencast_cli.gif"/>
90+
5891
<img src="doc/screenshot_2.png"/>
5992

6093
<img src="doc/screenshot_3.png"/>
6194

6295
<img src="doc/screenshot_4.png"/>
6396

6497
<img src="doc/screenshot_5.png"/>
65-
66-
# How to build Mayo
67-
[Instructions for Windows MSVC](https://github.com/fougue/mayo/wiki/Build-instructions-for-Windows-MSVC)
68-
[Instructions for Debian](https://github.com/fougue/mayo/wiki/Build-instructions-for-Debian)

appveyor.yml

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 0.5_build{build}
1+
version: 0.6_build{build}
22

33
image: Visual Studio 2017
44
platform: x64
@@ -36,36 +36,21 @@ before_build:
3636
- call "OpenCASCADE-%APPVEYOR_OCC_VERSION%-vc14-64\opencascade-%APPVEYOR_OCC_VERSION%\env.bat"
3737
- set PATH=C:\Qt\5.13\msvc2017_64\bin;%PATH%
3838
- set PATH=C:\Qt\Tools\QtCreator\bin;%PATH%
39-
- set PATH="C:\Program Files (x86)\Inno Setup 5";%PATH%
4039
- qmake --version
4140
- echo NUMBER_OF_PROCESSORS=%NUMBER_OF_PROCESSORS%
4241

4342
build_script:
4443
- mkdir build-%APPVEYOR_OCC_VERSION%
4544
- cd build-%APPVEYOR_OCC_VERSION%
46-
- qmake ..\mayo.pro
45+
- qmake ..\mayo.pro CONFIG+=withtests
4746
- jom -j%NUMBER_OF_PROCESSORS%
4847
- cd ..
4948

5049
test_script:
51-
- mkdir build-tests-%APPVEYOR_OCC_VERSION%
52-
- cd build-tests-%APPVEYOR_OCC_VERSION%
53-
- qmake ..\tests\mayo_tests.pro
54-
- jom -j%NUMBER_OF_PROCESSORS%
55-
- release\mayo_tests.exe
50+
- cd build-%APPVEYOR_OCC_VERSION%
51+
- release\mayo.exe --runtests
5652
- cd ..
5753

58-
after_test:
59-
- if "%APPVEYOR_OCC_VERSION%"=="7.5.0" (
60-
cd build-%APPVEYOR_OCC_VERSION%\installer &&
61-
iscc setup.iss &&
62-
cd ..\..
63-
)
64-
65-
artifacts:
66-
- path: build-%APPVEYOR_OCC_VERSION%\installer\Output\mayo_*_installer.exe
67-
name: MayoInstallerWin64
68-
6954
on_success:
7055
- ps: >-
7156
if ($true)

doc/screencast_1.gif

3.51 MB
Loading

i18n/i18n.pro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ HEADERS += \
44
$$files(../src/io_dxf/*.h) \
55
$$files(../src/io_gmio/*.h) \
66
$$files(../src/io_image/*.h) \
7+
$$files(../src/io_ply/*.h) \
78
$$files(../src/graphics/*.h) \
89
$$files(../src/gui/*.h) \
910
$$files(../src/app/*.h) \
@@ -15,6 +16,7 @@ SOURCES += \
1516
$$files(../src/io_dxf/*.cpp) \
1617
$$files(../src/io_gmio/*.cpp) \
1718
$$files(../src/io_image/*.cpp) \
19+
$$files(../src/io_ply/*.cpp) \
1820
$$files(../src/graphics/*.cpp) \
1921
$$files(../src/gui/*.cpp) \
2022
$$files(../src/app/*.cpp) \

i18n/mayo_en.qm

1.48 KB
Binary file not shown.

0 commit comments

Comments
 (0)