{"id":1121,"date":"2018-03-17T14:12:38","date_gmt":"2018-03-17T13:12:38","guid":{"rendered":"http:\/\/silentdynamics.de\/?p=1121"},"modified":"2018-04-16T18:56:02","modified_gmt":"2018-04-16T16:56:02","slug":"importing-iges-file-from-freeship-to-opencascade","status":"publish","type":"post","link":"https:\/\/silentdynamics.de\/fr\/2018\/03\/17\/importing-iges-file-from-freeship-to-opencascade\/","title":{"rendered":"Importation de fichier IGES (*.IGS) de FreeShip vers OpenCASCADE"},"content":{"rendered":"<p>Le logiciel FreeShip est un outil pratique pour la conception de coques.<br \/>\nLes capacit\u00e9s de FreeShip sont essentiellement limit\u00e9es \u00e0 la conception de l'ext\u00e9rieur de la coque. Pour tout le reste, un v\u00e9ritable syst\u00e8me de CAO est n\u00e9cessaire. Il existe une fonction d'exportation IGES pour le transfert.<br \/>\nIl existe \u00e9galement un successeur : DelftShip. La fonction d'exportation IGES a \u00e9t\u00e9 supprim\u00e9e de la version gratuite de DelftShip et n'est disponible que dans la version commerciale. Celle-ci ne m'est pas accessible, je ne peux donc pas la tester.<br \/>\nJe voudrais utiliser la g\u00e9om\u00e9trie de notre outil ISCAD. Il est bas\u00e9 sur OpenCASCADE.<br \/>\nLa g\u00e9om\u00e9trie de la coque mod\u00e9lis\u00e9e dans FreeShip 2.6 ressemble \u00e0 ceci :<a href=\"http:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/paperboat2018.fbm-not-modified_001.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1145 size-full\" src=\"http:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/paperboat2018.fbm-not-modified_001.png\" alt=\"\" width=\"1920\" height=\"1152\" srcset=\"https:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/paperboat2018.fbm-not-modified_001.png 1920w, https:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/paperboat2018.fbm-not-modified_001-300x180.png 300w, https:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/paperboat2018.fbm-not-modified_001-768x461.png 768w, https:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/paperboat2018.fbm-not-modified_001-1024x614.png 1024w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><br \/>\nL'exportation vers un fichier IGES n'a rien de spectaculaire et 40 faces individuelles sont cr\u00e9\u00e9es.<br \/>\nLa prochaine \u00e9tape est l'importation dans OpenCASCADE. Mais il y a un probl\u00e8me ici. OpenCASCADE (v7.2.0) signale:<\/p>\n<blockquote><p>Rapport : 40 entit\u00e9s inconnues.<\/p>\n<p>Nombre total d'entit\u00e9s charg\u00e9es 41.<\/p><\/blockquote>\n<p>Rien ne s'affiche. Bien qu'il soit rapport\u00e9 qu'une importation fonctionne avec les versions ant\u00e9rieures.<a href=\"https:\/\/forum.freecadweb.org\/viewtopic.php?t=1670\">https:\/\/forum.freecadweb.org\/viewtopic.php?t=1670<\/a>), l'importation ne fonctionne pas avec la version actuelle de l'OCC, ni avec diff\u00e9rentes anciennes versions de Salome (et OpenCASCADE). Par contre, l'importation fonctionne par exemple dans le logiciel de CAO commercial Creo.<\/p>\n<p>Enfin, une \u00e9tude montre que le fichier export\u00e9 par FreeShip ne contient que des entit\u00e9s de type 128 (surface spline). De plus, il n'y a qu'une seule d\u00e9finition de couleur au d\u00e9but. \u00c0 la fin du bloc de param\u00e8tres d'une surface 128 (voir par exemple. <a href=\"https:\/\/wiki.eclipse.org\/IGES_file_Specification#Rational_B-Spline_Surface_.28Type_128.29\">https:\/\/wiki.eclipse.org\/IGES_file_Specification#Rational_B-Spline_Surface_.28Type_128.29<\/a>) sont les param\u00e8tres de d\u00e9but et de fin (valeurs minimales\/maximales U et V) de la surface. Ces entr\u00e9es sont omises par FreeShip et constituent une erreur pour OpenCASCADE.<\/p>\n<p>Une solution de contournement consiste \u00e0 patcher l'importation IGES d'OpenCASCADE. Le code correspondant se trouve \u00e0 partir de la ligne 188 dans le fichier IGESGeom\/IGESGeom_ToolBSplineSurface.cxx. J'ai supprim\u00e9 le message d'erreur et ins\u00e9r\u00e9 des limites de param\u00e8tres par d\u00e9faut :<\/p>\n<pre class=\"lang:c++ decode:true\">  si (!PR.ReadReal(PR.Current(), aUmin) || !PR.ReadReal(PR.Current(), aVmin)){\n    \/\/Message_Msg Msg106(\"XSTEP_106\");\n    \/\/PR.SendFail(Msg106);\n    aUmin=0.0;\n    aVmin=0.0;\n  }\n\n  si (!PR.ReadReal(PR.Current(), aUmax) || !PR.ReadReal(PR.Current(), aVmax)){\n    \/\/Message_Msg Msg107(\"XSTEP_107\");\n    \/\/PR.SendFail(Msg107);\n    aUmax=1.0;\n    aVmax=1.0;\n  }<\/pre>\n<p>Avec ces modifications, l'importation fonctionne :<\/p>\n<p><a href=\"http:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/Auswahl_002.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1146 size-full\" src=\"http:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/Auswahl_002.png\" alt=\"\" width=\"658\" height=\"394\" srcset=\"https:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/Auswahl_002.png 658w, https:\/\/silentdynamics.de\/wp-content\/uploads\/2018\/03\/Auswahl_002-300x180.png 300w\" sizes=\"auto, (max-width: 658px) 100vw, 658px\" \/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>How to fix IGES import of FreeShip-generated geometry.<\/p>","protected":false},"author":1,"featured_media":1146,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[191],"tags":[],"class_list":["post-1121","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oss-cae-blog"],"_links":{"self":[{"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/posts\/1121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/comments?post=1121"}],"version-history":[{"count":0,"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/posts\/1121\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/media\/1146"}],"wp:attachment":[{"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/media?parent=1121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/categories?post=1121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/silentdynamics.de\/fr\/wp-json\/wp\/v2\/tags?post=1121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}