tis-freecad
0.18.4-2
FreeCAD is a free and open-source (under the LGPLv2+ license) general-purpose parametric 3D CAD modeler and a building information modeling (BIM) software with finite-element-method (FEM) support. FreeCAD is intended for mechanical engineering product design but also expands to a wider range of uses around engineering, such as architecture or electrical engineering.
7222 downloads

Description
- package : tis-freecad
- version : 0.18.4-2
- architecture : x86
- categories : Media,Utilities
- maintainer : WAPT Team,Jimmy PELÉ
- description : FreeCAD is a free and open-source (under the LGPLv2+ license) general-purpose parametric 3D CAD modeler and a building information modeling (BIM) software with finite-element-method (FEM) support. FreeCAD is intended for mechanical engineering product design but also expands to a wider range of uses around engineering, such as architecture or electrical engineering.
- locale : all
- target_os : windows
- min_wapt_version : 1.5
- sources : https://github.com/FreeCAD/FreeCAD/releases
- installed_size : 826376192
- impacted_process : FreeCAD.exe
- description_fr : FreeCAD est un logiciel de modélisation 3D libre pour la CAO, IAO, PLM, orientée vers le génie mécanique et le design de produits, mais qui vise également d'autres disciplines, telles que l'architecture ou d'autres branches de l'ingénierie.
- description_pl : FreeCAD jest parametrycznym modelerem CAD/CAE.
- description_de : FreeCAD ist ein 3D CAD/CAE-Programm für parametrisches Modellieren. Es dient primär zum Entwerfen von technischen Objekten, kann aber auch zum Modellieren von anderen 3D Objekten genutzt werden, wo Präzision und Kontrolle über die Modellhistorie gefragt sind.
- description_es : FreeCAD es una aplicación de modelado paramétrico CAD/CAE. Esta primeramente hecha para diseño mecánico, pero también sirve a muchos otros usos donde donde necesitas modelado 3D con precisión y control sobre historial de modelado.
- description_pt :
- description_it :
- description_nl :
- description_ru :
- editor : Jürgen Riegel,Werner Mayer,Yorik van Havre
- licence : LGPLv2+
- signature_date : 2020-02-27T21:32:52.853907
- Homepage : https://www.freecadweb.org/
Setup.py
# -*- coding: utf-8 -*-
from setuphelpers import *
#FreeCAD0184rev18542 FreeCAD 0.18.4rev18542 0.18.4rev18542 "C:\Program Files\FreeCAD 0.18\Uninstall-FreeCAD.exe"
uninstallkey = []
# Declaring specific app values (TO CHANGE)
bin_name_string = 'FreeCAD-%s-x32-installer.exe'
bin_name_joker = 'FreeCAD-*-x32-installer.exe'
silent_arguments = '/S'
suffix_dl_link = '-WIN-x32-installer.exe'
def install():
print('installing %s' % control.asrequirement())
# Declaring specific app values
package_version = control.version.split('-',1)[0]
soft_name = control.name
uninstallkey_freecad = 'FreeCAD' + get_file_properties(glob.glob(bin_name_joker)[0])['FileVersion'].replace('.','')
def get_version_software(key):
return key['version'].split('rev')[0]
# Uninstalling older versions
check_installed = installed_softwares(soft_name)
#print(check_installed)
for uninstall in check_installed:
if 'FreeCAD Team' in uninstall['publisher']:
if uninstall['version'] < package_version:
print('Removing %s' % uninstall['name'])
cmd = uninstall_cmd(uninstall['key'])
run(cmd)
# Getting the used storage on programfiles before installation (place it on the top)
diskfreespacebefore = get_disk_free_space(programfiles)
# Installing the package
install_exe_if_needed(bin_name_string % package_version
,silentflags=silent_arguments
,key=uninstallkey_freecad
,min_version=package_version
,get_version=get_version_software)
# Return used storage of the installation. (place it on the bottom)
diskfreespaceafter = get_disk_free_space(programfiles)
difffreespace = diskfreespacebefore - diskfreespaceafter
print ("Storage used: " + str(difffreespace))
def update_package():
print('Update package content from upstream binary sources')
from waptpackage import PackageEntry
import requests,re
# Update transition from BeautifulSoup 3 to 4
try:
import bs4 as BeautifulSoup
except:
import BeautifulSoup
# Getting proxy informations from WAPT settings
proxy = {}
if isfile(makepath(application_data(),'waptconsole','waptconsole.ini')):
proxywapt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','http_proxy')
if proxywapt :
proxy = {'http':proxywapt,'https':proxywapt}
# Specific app values
app_name = control.name
url = control.sources
# Get latest version number from official website
page = requests.get(url + '/latest',headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'}).text
bs = BeautifulSoup.BeautifulSoup(page)
bs_raw_string = str(bs.find('span',{'class':'css-truncate-target'}).text)
version = bs_raw_string
print('Latest ' + app_name + ' version is: ' + version)
#https://github.com/FreeCAD/FreeCAD/releases/download/0.18.2/FreeCAD-0.18.16117.dbb4cc6-WIN-x64-installer.exe
# Declaring binaries extension to download
reg_bin = "%s$" % suffix_dl_link # $ mean the end of regex chain
end_bin = re.compile(reg_bin)
links = bs.findAll("a",{"href" : end_bin})
part_url_dl = links[0]['href']
#print(part_url_dl)
url_dl = ('https://github.com' + part_url_dl)
print('Download url is: ' + url_dl)
latest_bin = bin_name_string % version
# Downloading latest binaires
if not isfile(latest_bin):
print('Downloading ' + url_dl)
wget(url_dl,latest_bin,proxies=proxy)
# Change version of the package
pe = PackageEntry()
pe.load_control_from_wapt(os.getcwd())
pe.version = version + '-0'
pe.save_control_to_wapt(os.getcwd())
print ('Update package done. You can now build-upload your package')
else:
print ('This package is already up-to-date')
# Deleting outdated binaries
for actual_bin in glob.glob(bin_name_joker):
if actual_bin != latest_bin :
print(actual_bin + ' Deleted')
remove_file(actual_bin)
if __name__ == '__main__':
update_package()