Shape is not a shell

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
Post Reply
jpeg
Posts: 34
Joined: Mon Jul 05, 2021 9:18 am

Shape is not a shell

Post by jpeg »

Bonjour,
Je suis nouveau sur ce forum et tout nouvel utilisateur de FC dont la puissance m'étonne,
toutefois je rencontre un problème que je n'arrive pas à surmonter
malgré le nombre d'essais ; la recherche ne m'ayant pas apporté de solution évidente, je me tourne vers vous.

J'ai réalisé une forme peut être un peu trop complexe que je veux convertir en solide :
- cylindre composé de plusieurs faces extérieures et prépercé d'autant de filetages (30)
Jusque là, pas de problème, la conversion s'opère. C'est ensuite que cela se complique.

- 4 petits tenons cylindriques doivent être inclus à l'intérieur du cylindre primitif.
Leur supperposition par moitié dans la pièce principale fait que la pièce finale est bien 'fermée'.

Quelque soit la méthode d'ajout (en utilisant une conversion intermédiaire ou pas)
j'obtiens les erreurs suivantes :
12:52:41 Traceback (most recent call last):
File "<string>", line 2, in <module>
<class 'Part.OCCError'>: Shape is not a shell
12:52:41 Cannot convert Fusion003 because Shape is not a shell.

Code: Select all

Python 3.8.6+ (heads/3.8-dirty:a12f459ec2, Nov  5 2020, 12:01:10) [MSC v.1927 64 bit (AMD64)] on win32
Type 'help', 'copyright', 'credits' or 'license' for more information.
>>> # Gui.Selection.clearSelection()
>>> # Gui.Selection.addSelection('Sans_nom2','Fusion002')
>>> # Gui.Selection.addSelection('Sans_nom2','Cylinder017001')
>>> ### Begin command Part_Fuse
>>> App.activeDocument().addObject("Part::MultiFuse","Fusion003")
>>> App.activeDocument().Fusion003.Shapes = [App.activeDocument().Fusion002,App.activeDocument().Cylinder017001,]
>>> Gui.activeDocument().Fusion002.Visibility=False
>>> Gui.activeDocument().Cylinder017001.Visibility=False
>>> App.getDocument('Sans_nom2').getObject('Fusion003').ViewObject.ShapeColor=getattr(App.getDocument('Sans_nom2').getObject('Fusion002').getLinkedObject(True).ViewObject,'ShapeColor',App.getDocument('Sans_nom2').getObject('Fusion003').ViewObject.ShapeColor)
>>> App.getDocument('Sans_nom2').getObject('Fusion003').ViewObject.DisplayMode=getattr(App.getDocument('Sans_nom2').getObject('Fusion002').getLinkedObject(True).ViewObject,'DisplayMode',App.getDocument('Sans_nom2').getObject('Fusion003').ViewObject.DisplayMode)
>>> App.ActiveDocument.recompute()
>>> ### End command Part_Fuse
>>> # Gui.Selection.clearSelection()
>>> # Gui.Selection.addSelection('Sans_nom2','Fusion003')
>>> ### Begin command Part_MakeSolid
>>> import Part
>>> __s__=App.ActiveDocument.Fusion003.Shape.Faces
>>> __s__=Part.Solid(Part.Shell(__s__))
>>> __o__=App.ActiveDocument.addObject("Part::Feature","Fusion003_solid")
>>> __o__.Label="Fusion003 (Solid)"
>>> __o__.Shape=__s__
>>> del __s__, __o__
>>> ### End command Part_MakeSolid
>>> Gui.runCommand('Std_Copy',0)

Code: Select all

OS: Windows 10 Version 2009
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24291 (Git)
Build type: Release
Branch: releases/FreeCAD-0-19
Hash: 7b5e18a0759de778b74d3a5c17eba9cb815035ac
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.0
Locale: French/France (fr_FR)
Vue pièce.jpg
Vue pièce.jpg (31.7 KiB) Viewed 2085 times
Qu'est-ce qui m'échappe ?
openBrain
Veteran
Posts: 9031
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

Re: Shape is not a shell

Post by openBrain »

jpeg wrote: Tue Jul 27, 2021 11:08 am Qu'est-ce qui m'échappe ?
Déjà, le lien dans la grosse bannière rouge en haut de page.

Ensuite c'est pas clair. Toutes les opérations natives de FreeCAD se font sur des solides et donnent des solides. Pourquoi convertir en solide quelque chose qui l'est déjà ?
User avatar
papyblaise
Veteran
Posts: 7793
Joined: Thu Jun 13, 2019 4:28 pm
Location: France

Re: Shape is not a shell

Post by papyblaise »

Manque de fichier , ça nous aurait été utile :!:
Un titre en français eût été mieux
Pour que les 4 tenons soient inclus ils faut qu'ils soient dans le même body , ou faire une add booléen avec l'anneau
Attachments
anneau.PNG
anneau.PNG (30.92 KiB) Viewed 2063 times
anneau.FCStd
(634.03 KiB) Downloaded 37 times
User avatar
Forthman
Veteran
Posts: 2626
Joined: Fri Apr 27, 2018 11:23 am
Location: Tarn-et-Garonne (82)

Re: Shape is not a shell

Post by Forthman »

Salut,
il faut que tu nous expliques comment quelqu'un qui débute dans Freecad a besoin de transformer un Shell en solide :shock:
Je veux dire par là que quand tu débutes, avec l'atelier Part ou Part Design, tout ce qui est créé est un solide :roll:

Donc tu peux soit :
- nous détailler pas à pas comment tu as fait pour réaliser ton anneau
- nous partager ton fichier (il me semble que l'on ne peut pas partager de fichier au premier post)
- nous mettre une copie écran avec l'arbre de construction

Sans ça on ne peux pas t'aider :(
jp-willm
Veteran
Posts: 1097
Joined: Sat Feb 06, 2016 4:11 pm
Location: France (Alsace)
Contact:

Re: Shape is not a shell

Post by jp-willm »

Hello jpeg,
jpeg wrote: Tue Jul 27, 2021 11:08 am Bonjour,
J'ai réalisé une forme peut être un peu trop complexe que je veux convertir en solide :
Pourrais-tu nous mettre ton fichier sur https://www.cjoint.com/

@+ jp
User avatar
Vincent B
Veteran
Posts: 4711
Joined: Sun Apr 05, 2015 9:02 am
Location: La Rochelle, France

Re: Shape is not a shell

Post by Vincent B »

jpeg wrote: Tue Jul 27, 2021 11:08 am j'obtiens les erreurs suivantes :
12:52:41 Traceback (most recent call last):
File "<string>", line 2, in <module>
<class 'Part.OCCError'>: Shape is not a shell
12:52:41 Cannot convert Fusion003 because Shape is not a shell.
C'est Fusion de Part qui beuge parce qu'il essaye de fusionner un object mal formé.
Sans voir le fichier difficile d'en dire plus.
jpeg
Posts: 34
Joined: Mon Jul 05, 2021 9:18 am

Re: Shape is not a shell

Post by jpeg »

Merci pour vos contributions.
Désolé pour le titre mais le message d'erreur me semblait suffisamment évocateur.
Désolé aussi pour le laps de temps pour ma réponse mais j'ai du recréer le modèle
(d'où le nombre de filetage limité ici à 1)

Je précise donc (comme je peux) :

Ci dessous la copie d'écran décrivant la construction


Pourquoi un solide ?
Parce que j'ai cru comprendre que c'était la méthode pour créer un objet unique
(à l'image de M3x 12 - Screw)

Le fichier std
Support 3.jpg
Support 3.jpg (84.63 KiB) Viewed 1956 times
Mon problème final est donc d'en faire un objet unique
Attachments
Support 80 _tmp.FCStd
(225.7 KiB) Downloaded 32 times
jpeg
Posts: 34
Joined: Mon Jul 05, 2021 9:18 am

Re: Shape is not a shell

Post by jpeg »

Je viens d'obtenir ce que je veux ...
mais avec un seul percage
Support 80_tmp copy.FCStd
(53.54 KiB) Downloaded 45 times
schupin
Posts: 476
Joined: Sun Jan 21, 2018 1:43 pm

Re: Shape is not a shell

Post by schupin »

J'ai comme l'impression que tu n'as pas regardé les meilleurs tutoriaux pour faire ta pièce.
Il y a 1000 fois plus simple puisque je l'ai fait en 3 étapes :
Capture d’écran 2021-07-27 194957.png
Capture d’écran 2021-07-27 194957.png (37.65 KiB) Viewed 1919 times
Ci-joint mon fichier (pour avoir les filetages apparents, il faut mettre "model threaded" à true dans la fonction "hole".

En tout cas, je te conseille de regarder des tuto "de base" pour bien prendre en main le logiciel. Pour faire des pièces comme ça, les tutos de Jp-willm (qui traine sur le forum : https://www.youtube.com/channel/UCJwHW5 ... OUw/videos) semblent tout à fait opportun.
Support 80 _SC.FCStd
(275.57 KiB) Downloaded 41 times
jpeg
Posts: 34
Joined: Mon Jul 05, 2021 9:18 am

Re: Shape is not a shell

Post by jpeg »

Merci je vais regarder de près comment tu t'y es pris.

Je suis en train de parcourir les tutos.
Je penserais à jeter un oeil sur youtube.

Question subsidiaire :
comment peut on modifier le pictogramme d'un objet ?
(A l'image de la vis dans mon projet initial)
Post Reply