pythonocc: une plateforme de développement agile d applications CAO.



Documents pareils
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

SALOME l écosystème l offre de support

La voie rapide vers le cpdm

26th of March 2014, Paris

Microsoft Exchange en quelques mots

Calcul Scientifique avec 3

AutoForm plus R6 : Besoins systèmes

Travail collaboratif. Glossaire

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Installation de GFI Network Server Monitor

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

SQL Server, MySQL, Toad (client MySQL), PowerAMC (modélisation) Proxy SLIS

Catalogue des Formations Techniques

Projet de développement

Licence Pro ASUR Supervision Mai 2013

Virtual Universe Pro V2 Manuel de l Utilisateur (C) 2013 IRAI. Manuel Utilisateur VIRTUAL UNIVERSE PRO V2 Page 1

Zimbra. S I A T. T é l : ( ) F a x : ( )

S10 - Automatisez la compilation et le déploiement de vos applications IBM i avec Arcad Pack for Rational

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Systèmes de gestion de code source

Editing and managing Systems engineering processes at Snecma

Logiciel libre de gestion pour l'education Populaire. Module ALSH et ALSH périscolaire

Virtual Box Mettez un PC dans votre... PC

Famille IBM WebSphere Application Server

Implémentation libre de Liberty Alliance. Frédéric Péters

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Rationalisation de votre flux de travail

Vérifier la qualité de vos applications logicielle de manière continue

Une solution opensource d'affichage dynamique - XIBO

1 Actuate Corporation de données. + d analyses. + d utilisateurs.

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

Mettre en place une infrastructure Web nouvelle génération avec Drupal et Acquia

PRODUCTS LIST (updated 11th January 2010)

Une solution de travail collaboratif : SharePoint. Jonathan Krebs

Nicolas ANGENIEUX GISMARTWARE

Logiciel de gestion de contenu et de processus

Serveur Subversion Debian GNU/Linux

Stage Ingénieur en développement logiciel/modélisation 3D

11 Février 2014 Paris nidays.fr. ni.com

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Dafoe Présentation de la plate-forme UIMA

Logiciel de gestion de contenu et de processus

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Les méthodes de sauvegarde en environnement virtuel

Retour d expérience sur Prelude

OmniVista 2700 Application complémentaires pour l OmniVista 2500 Network Management

FME Server comme plateforme d échanges de données raster multi-temporelles chez MeteoSuisse

Tutoriel code::blocks

Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1

Comment gérer toutes mes tâches logicielles d automatisation dans un seul environnement?

DESIGN GRAPHIQUE GRAPHIC DESIGN

INDUSTRIALISATION ET RATIONALISATION

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

ContactOffice. La Messagerie collaborative pour l'éducation. Assises 2015 du CSIESR Avignon

Orchestrer son cloud OpenStack avec Heat

Les applications webmapping en opensource. 1 Christophe Adriaensen

Java à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON

Une aide au déploiement de STEP AP 242 : les recommandations d utilisation

Système de Gestion de Ressources

Exemple d Application des Méthodes Agiles au Développement d un Produit Software. Jean-Marc Bodart, Océ Software Laboratories Namur SA

Supervision système et réseau avec Zabbix. Anne Facq Centre de Recherche Paul Pascal 17 avril 2008

Choisir la solution d hébergement et de support faite pour vous

L art d ordonnancer. avec JobScheduler. François BAYART

Catalogue des stages Ercom 2013

creo elements/pro creo elements/direct creo elements/view

Eclipse Process Framework et Telelogic Harmony/ITSW

Intelligent Power Software

DEILLON Thomas. Copyright CRI74 GNU Free Documentation License

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

Environnements de développement (intégrés)

Catalogue des formations

LES SOLUTIONS OPEN SOURCE RED HAT

Architectures Ouvertes pour l Adaptation des Logiciels

Nouveautés ArcGIS 10.1 for Server

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Curriculum Vitae de Michel Casabianca

Présentation de la Grille EGEE

Nouveautés Ignition v7.7

IBM Business Process Manager

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

Logiciels libres de Bibliothèques numériques : présentation. Castore & Greenstone. Les autres : CDS Invenio, EPRINTS, Dspace.

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet


Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

Plesk Automation. Questions techniques fréquemment posées

Formats 3D Critères d utilisation dans les échanges Frédéric CHAMBOLLE PSA Peugeot Citroën Direction des Systèmes d Information

SECURIDAY 2013 Cyber War

ALTIUM DESIGNER. Solution unifiée de développement de produits électroniques, intégrée avec la mécanique

W4 - Workflow La base des applications agiles

Transcription:

pythonocc: une plateforme de développement agile d applications CAO. PyConFR 2009 Cité des Sciences et de l Industrie, Paris Thomas Paviot*, Jelle Feringa* *pythonocc project: tpaviot@gmail.com; jelleferinga@gmail.com 1

Objectifs de cette présentation Exposer les enjeux du logiciel libre dans la conception de produit en général et la CAO en particulier, Le language de programmation Python a une pertinence industrielle, Dresser un rapide état de l art du couple CAO 3D/Python, Présenter la bibliothèque de développement pythonocc. Questions PyConFR 2009 pythonocc: développement agile d applications CAO 2

L ingénierie numérique pour le développement de produit Les outils numériques sont largement utilisés pour accélérer les cycles de développement des produits (CQD). PyConFR 2009 pythonocc: développement agile d applications CAO 3

CAO 3D Le marché offre de nombreuses solutions de CAO performantes et éprouvées (DS Catia TM V5-SolidWorks, PTC Pro/E, Siemens SolidEdge TM, Autodesk Inventor TM etc.) L offre open source en CAO 3D est pauvre. Visualisation scientifique: VTK Modelage/Rendu artistique/jeu: Blender, Irrlicht, Ogre3d CAO 3D: BRLCAD (vieillissant), FreeCad (en dev.) PyConFR 2009 pythonocc: développement agile d applications CAO 4

Le contexte : des produits et organisations industrielles complexes Nombreux et difficiles problèmes d interopérabilité des systèmes, Un objectif affiché par la NASA et l ESA: «Joining open standards with the open source software (OSS) development model for costeffective implementations that avoid vendor dependencies». PyConFR 2009 pythonocc: développement agile d applications CAO 5

Les problèmes liés aux applications CAO commerciales Nécessité d un accès à de la topologie de bas niveau (connexion d une face avec de la connaissance liée à ses dimensions, la machine nécessaire pour la fabrication, des spécifications géométriques etc.): les scripts VBA ne permettent pas cet accès. L accès aux API complètes des applications CAO est coûteuse: difficile à justifier dans le cadre d un développement expérimental, Les applications CAO commerciales nécessitent un développement en C++ (pas forcément le meilleur choix pour le prototypage d applications), Le contrat de licence peut être une contrainte à une diffusion de ces produits, L implémentation des standards d échange de données (IGES, STEP) peut être incomplète ou partielle, causant des problèmes d interopérabilité. Besoin d un noyau 3D CAO de qualité industrielle, facile à utiliser, à maintenir et à déployer, à bas coût. PyConFR 2009 pythonocc: développement agile d applications CAO 6

Le projet pythonocc Pourquoi OpenCASCADE TM? La seule bibliothèque 3D open source de qualité industrielle, Mais: C++, difficulté de prise en main. Pourquoi Python TM? Language de programmation dynamque de qualité industrielle, OpenSource, portable Largement utilisé par la communauté scientifique (Salomé, Code Aster etc.), de nombreuses bibliothèques de développement disponibles : VTK, pytables, numpy, SciPy etc. Mais: aucune bibliothèque CAO 3D disponible pythonocc Pourquoi pythonocc TM? pour développer/prototyper rapidement des applications CAO/PLM de qualité industrielle. Une plateforme open source, basée sur des standards ouverts, pour le développement agile d applications CAO. PyConFR 2009 pythonocc: développement agile d applications CAO 7

Historique/état du projet Projet commencé en avril 2008, Première version stable publiée en févrer 2009, Dernière release: pythonocc 0.2 (2009, April 10 th ), Disponible pour Windows XP/Vista, MacOSX 10.5, GNU Linux (testé sur Debian, Fedora, OpenSuse et Ubuntu), Publié sous la licence libre GNU General Public License v3, Environnement de développement collaboratif (Subversion repository, mailing-list, bugtracker etc.) hébegré par gna : http://gna.org/projects/pythonocc Site, wiki, API reference online documentation, téléchargements : http://www.pythonocc.org Plus de 9000 classes couvertes par l interface, Un système de génération de l interface composé de 3 scripts python et à peine plus de 3000 lignes de code, Un ensemble importants d exemples, Une communauté d utilisateurs grandissante. PyConFR 2009 pythonocc: développement agile d applications CAO 8

Une architecture à 2 niveaux pour un développement CAO agile. L objectif de pythonocc est d étendre les fonctionnalités 3D du noyau OCC avec les nouvelles avancées dans les domaines de l ingénirie de la connaissance, l ingénirie collaborative, la représentation 3D etc. pythonocc s appuie donc également sur des bibliothèques tierces éprouvées. L0 OpenCascade C++ library L1 Python bindings Traits multi processing twisted L2 High level CAD/PLM pythonic API pythonocc PyConFR 2009 pythonocc: développement agile d applications CAO 9

Level 1 : un processus automatisé pour la création de l interface pygccxml processing XML files Py++ processing Process input OpenCascade 6.3.0 headers (14197 files) Set of *.i files Process output: Python bindings (*.py and *.pyd/*.so libraries) Set of *.cpp and *.py files SWIG processing Build process (g++/msvc) PyConFR 2009 pythonocc: développement agile d applications CAO 10

Level 2 : un ensemble de classes/méthodes de haut niveau Threading - Multiprocessing Application framework Topology introspection Network collaboration/ Data exchange Objectifs à moyen terme : Une application KBE basée sur les ontologies et la technologie SPARQL, Un environnement de conception collaborative complet: collaboration asynchrone (via une base de données PDM de granularité fine), collaboration synchrone (partage de flux 3D en temps réel, système de discussion). PyConFR 2009 pythonocc: développement agile d applications CAO 11

Quelques exemples Ces démos ont pour objectif de montrer : Quelques fonctionnalités du niveau 1, Quelques fonctionnalités de niveau 2 (extension du niveau 1), Que Python peut-être considéré dans ce cadre comme un langage de programmation dynamique pour l innovation. PyConFR 2009 pythonocc: développement agile d applications CAO 12

Demo 1 : an easy to use/flexible scripting engine (L1) for 3D modeling from OCC.BRepPRimAPI import * box = BRepPrimAPI_MakeBox(10,20,30).Shape() display.displayshape(box) PyConFR 2009 pythonocc: développement agile d applications CAO 13

Demo2 : création/visualisation de fichiers dans un format standard (L1) Le programme CADViewer pour les fichiers IGES/BRep/STL/STEP nécessite seulement 80 lignes de code. STEP file visualization (aircraft) IGES file visualization (fan) PyConFR 2009 pythonocc: développement agile d applications CAO 14

Demo 3 : opérations booléennes (L1) Le programme Emmenthaler effectue des opérations booléennes récursives: le retrait de 50 cylindres aléatoires à partir d un parallélépipède initial de 200*260*260. PyConFR 2009 pythonocc: développement agile d applications CAO 15

Demo 4 : visualisation de courbure gaussienne (L2) Cette exemple utilise la bibliothèque de haut niveau de gestion de la topologie pour calculer/afficher la courbure gaussienne d une surface au format IGES (environ 250 lignes de code). PyConFR 2009 pythonocc: développement agile d applications CAO 16

Demo 5 : multiprocessing (L2) Les processus géométriques tournent rarement en parallèle, mais pythonocc rend possible cette fonctionnalité par l utilisation du module processing, Accélération de la génération de géométrie complexe, Example: utilise tous les processeurs disponibles (8) pour trancher une géométrie complexe, Une accélération presque linéaire pour l example suivant: déterminer les intersections multiples d une géométrie 3D et d un ensemble de plans parallèles (pour déterminer les trajets outil en prototypage rapide). April 2009, 29 th 11 th NASA/ESA Workshop on Product Data Exchange pythonocc/step-plcs framework 17

Demo 5 : multiprocessing results Pump part slicing display Multiprocess performance results (MacOSX 10.5/8 processors machines/ pythonocc svn rev. 302/ STEP geometry) PyConFR 2009 pythonocc: développement agile d applications CAO 18

Demo 6 : collaboration échange de géométrie Echange de géométrie (sphère) sur un réseau via XMLRPC. 2 scripts: client.py server.py Création de la géométrie Affichage de la géométrie Serveur XML/RPC Client XML/RPC Machine 1 Machine 2 PyConFR 2009 pythonocc: développement agile d applications CAO 19

Demo 6 : 1 shape server, 3 concurrent clients PyConFR 2009 pythonocc: développement agile d applications CAO 20

Merci de votre attention! PyConFR 2009 pythonocc: développement agile d applications CAO 21