My first big project with FreeCAD, a world globe using the high precision GSHHS boundary data of earth’s land masses. See https://www.ngdc.noaa.gov/mgg/shorelines/
The globe, composed of two hollow hemispheres with outside radius 100mm and inside radius 96mm, were used as base for the land masses. 2mm thick land masses were placed on top of the hemispheres to represent the islands and continents of the world. To avoid over crowding I settled on the continents and the largest islands totaling 61 land masses.
The GSHHS outlines are given as a series of longitude/latitude points for each separate land mass. The outline of an island was placed on each side of the 2mm spherical shell and then a loft was made from one side to the other. Cutting the shell with the loft generates the desired solid, a 2mm thick spherically shaped object representing a land mass.
Lofts between the full contours proved successful for the smaller islands but the large continents tested my patience due to day-long calculations of the lofts. Instead of plotting the entire outline and then doing a loft I created a loft from each pair of points and then did a union of the lofts. The calculations performed much more quickly, within hours for the largest land mass, Eurasia with 6,851 data points. Note: that corresponds to a solid with 6,853 faces!
The preparation of the data and the generation of the Python scripts to create these objects was done via LiveCode, a language that I use when C is not called for. I generated Python code, for each pair of data points, to create the Part:Arc at two different hemisphere diameters and to create the loft between the two arcs. The Part:Boolean:Union of the lofts and the Part:Split:Slice Apart of the shell by the combined lofts was performed at the GUI level.
A land mass is given in the form of a sequence of unit vectors each expressed as a longitude/latitude pair. The LiveCode program converted the long/lat data to x, y, z coordinates and data pairs were generated at the two diameters. The arc is defined for FreeCAD Part:Arc by giving the end points and the mid point of the arc. The mid point V3 of two end points V1 and V2 is found by normalizing V3=(V1 + V2)/2 and then expanding to the desired radius. The Python code that was generated was then pasted into FreeCAD via the console.
After a land mass was generated and before it was added to the base hemisphere it was meshed with a surface deviation of 0.001mm and angular deviation of 10 deg. I do not understand the significance of the angular deviation. The surface deviation seems to be needed to handle the detail in the contour data.
. The hemispheres were built up with special attention given to Africa, South America and those islands that straddle the equator. They needed to be boolean split into northern and southern sections. After the masses were added to the supporting hemispheres the entire collection of meshed objects were merged and exported to STL.
The printed globe contains 61 of the largest land masses, from Eurasia down to Bathurst Island. The 9 largest lakes were also shown via a Cut from the land mass. Data for all except Eurasia and North America came from the intermediate precision GSHHS file. Those two came from the low precision GSHHS file.
To avoid a large amount of support material inside the hemisphere a hollow spherical cone with interior angle of 35 degrees was inserted inside the hemisphere, thus removing the need for interior support during the printing process.
The hemispheres are glued together with four 1/8” x 1” pins for alignment. Printing time was about 5 days.
The STL files and information about the printer settings may be found at https://www.prusaprinters.org/prints/37340-world-globe
The GSHHS source files in text format may be found at https://www.dropbox.com/sh/wac25gk0f2n3 ... HdZNa?dl=0 as well as sample Python code showing the technique used and a FreeCAD file with a sample land mass.
A FreeCAD screen shot at https://forum.freecadweb.org/viewtopic. ... 0&start=90
Work was done on an iMac using FreeCAD 0.19.
For the geographers among us, here are the names of the objects on the globe in order by GSHHS number.
Northern Hemisphere
0 Eurasia
2 North America
7 Greenland
11 Baffin Island
13 Honshu
14 Victoria Island
15 Great Britain
16 Ellesmere Island
21 NewFoundLand
22 Cuba
23 Luzon
24 Iceland
25 Mindanao
26 Ireland
27 Hokkaido
28 Sakhalin
29 Hispaniola
30 Banks Island
33 Devon Island
37 Severny Island
38 Southampton Island
40 Axel Heiberg Island
41 Svalbard Island
43 Kuyushu
44 Taiwan
45 New Britain
46 Brodeur Peninsula
47 Hainan
48 Prince of Wales Island
49 Yuzhny Island
50 Vancouver Island (BC)
52 Sicily
53 Somerset Island
54 Sardinia
55 Kotelny (Kettle) Island
56 Shikoku
Southern Hemisphere
5 Antartica
6 Australia
8 Papau
9 Borneo
10 Madagascar
12 Sumatra
18 NewZealand (South)
19 Java
20 NewZealand (North)
31 Sri Lanka
32 Tasmania
34 Alexander Island
35 Isla Grande de La Tierra Fuego
36 Berkner Island
39 MelvilIe Island
42 Ilha Marajo
51 Timor
58 Seram Island
59 Grande Terra
60 Bathurst Island
Straddling the equator
1 Africa
3 South America
17 Sulawesi
57 Halmahera
Lakes
32621 Erie
33257 Tanganyika
33258 Baikal
33259 GreatBear
33260 GreatSlave
33261 Malawi
332531 Caspian
332541 GreatLakes
332551 Victoria
332641 Ontario