tis-freecad
0.19.1-4
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.19.1-4
- architecture : x64
- categories : Media,Utilities
- maintainer : Tranquil IT,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 : 1788391424
- 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 : 2021-03-29T13:46:06.155399
- Homepage : https://www.freecadweb.org/
Setup.py
# -*- coding: utf-8 -*-
from setuphelpers import *
import platform
import json
uninstallkey = []
# Declaring specific app values (TO CHANGE)
bin_name_string = 'FreeCAD-%s-x64-installer.exe'
silent_arguments = '/S'
suffix_dl_link = '-WIN-x64-installer.exe'
def install():
print('installing %s' % control.asrequirement())
# Declaring specific app values
package_version = control.version.split('-',1)[0]
version_key = package_version.replace('.','')
uninstallkey_freecad = 'FreeCAD%s' % version_key
# Installing the package
install_exe_if_needed(bin_name_string % package_version
,silentflags=silent_arguments
,key=uninstallkey_freecad
,min_version=package_version)
def update_package():
print('Download/Update package content from upstream binary sources')
# Getting proxy informations from WAPT settings
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
# Checking version from file
url = 'https://www.freecadweb.org/downloads.php?lang=fr'
for bs_search in bs_find_all(url, 'a', 'class', 'btn btn-primary rounded-pill my-1', proxies=proxies):
if bs_search['href'].split('/')[-1].endswith(suffix_dl_link):
version = bs_search['href'].split('/')[-2]
latest_bin = bs_search['href'].split('/')[-1]
url_dl = bs_search['href']
break
# Downloading binary
if not isfile(latest_bin):
print('Downloading ' + url_dl)
wget(url_dl,latest_bin,proxies=proxies)
# rename binary
os.rename(latest_bin,bin_name_string % version)
# Changing version of the package
control.version = '%s-%s'%(version,int(control.version.split('-')[-1])+1)
control.save_control_to_wapt()
print('Changing version to: %s in WAPT\\control' % control.version)
def get_proxies():
if platform.python_version_tuple()[0] == '3':
from urllib.request import getproxies
else:
from urllib import getproxies
return getproxies()
def get_proxies_from_wapt_console():
proxies = {}
if platform.system() == 'Windows':
waptconsole_ini_path = makepath(user_local_appdata(), 'waptconsole', 'waptconsole.ini')
else:
waptconsole_ini_path = makepath(user_home_directory(), '.config', 'waptconsole', 'waptconsole.ini')
if isfile(waptconsole_ini_path):
proxy_wapt = inifile_readstring(waptconsole_ini_path, 'global', 'http_proxy')
if proxy_wapt:
proxies = {'http': proxy_wapt, 'https': proxy_wapt}
return proxies
def bs_find_all(url, element, attribute=None, value=None, headers=None, proxies=None, features='html.parser', **kwargs):
""""You may need to use a header for some websites. For example: headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'}
"""
import requests
page = requests.get(url, proxies=proxies, headers=headers, **kwargs).text
try:
import bs4 as BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(page, features=features)
except:
import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(page)
if value:
return soup.findAll(element,{attribute:value})
else:
return soup.findAll(element)