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.
2288 downloads
Download

  Description 

  • package : tis-freecad
  • version : 0.18.4-2
  • 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_os_version : 6.1
  • max_os_version :
  • 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 : 2020-02-27T21:32:45.516267
  • Homepage : https://www.freecadweb.org/

  Setup.py 

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

#FreeCAD0182        FreeCAD 0.18.2      0.18.2      "C:\Program Files\FreeCAD 0.18\Uninstall-FreeCAD.exe"

# Declaring specific app values (TO CHANGE)
bin_name_string = 'FreeCAD-%s-x64-installer.exe'
bin_name_joker = 'FreeCAD-*-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]
    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()


										

  Changelog 


https://www.freecadweb.org/wiki/Release_notes_0.18
  manifest.sha256 
[["FreeCAD-0.18.4-x64-installer.exe","d70930110929117c3a198d3c815a9169e383ab88f650431a1a1ece7705d2ef1b"],["WAPT/icon.png","9fdef7d072d706e54429cca05bfe0d7410bc52197ed714d68bc071d3fe8cd748"],["WAPT/certificate.crt","a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf"],["WAPT/wapt.psproj","fdd9db03cb28a75c9b2af4f5154e55cce7feaa098404f37d3fe5c6cdfb483729"],["setup.py","2a0b834a2661a9fd31cc3affa3cc7fc0ff7e3cb5fa5f9281e09c38d8499742f4"],["WAPT/control","2b3d01dcb26e91fb3e90733e8f7cf9137c2480a083012c344046ac27794edd58"],["WAPT/changelog.txt","274031604939386ad72030c2d8bbd11ed6f56f708fcf86a10e820d6c12885839"]]