# 3D Printed parametric gaz-mask ## _Masque à gaz paramétrique imprimé en 3D (**version francaise [ici](./Readme.fr.md)**)_ [![fr](https://img.shields.io/badge/lang-fr-red.svg)](./Readme.fr.md) [![en](https://img.shields.io/badge/lang-en-green.svg)](./Readme.md) :camera: _**pictures will be added later for more clarity**_ :camera: ## 1 - General principle There was many major version (8 in total) of this gaz mask before arriving at a final design. We will describe the general design principle of the latest version of the mask in this secion. The is also a similar [_section on the older version_](#4-older-version), that is more sucint as it is not the recommanded version _at least not without you tweaking and understanding this version_. To know how to assemble/print this mask, see the [_section on mask assembly and printing_](#2-mask-assembly-and-printing_), and if you want to change parameters check the [_section explaining parameters_](#3-explanation-of-parameters). ### Maintenance It is recommanded to apply grease (_prefere food safe vaseline_) arround thread, arround the insuflation mask connector and arround the perimeter of the one way valve to improve the seal. If you are using a 3D printed (_or DIY_) filter (_as described in [the section bellow](#1-b-filter-canister)_), change regularly the filter material - in general activated charcoal - and clean the enclosure if you don't change it. In general do a fitment check before using the mask : put a piece of plastic (_or your hand_) at the entrance of the filter you are using, and breath in hard. You shouldn't fill air entering you lungs, and the mask should compress to you face under the suction force. ### 1.a - Interfacing with the face The final design relies on an insuflation mask (_with a standard 22m inner diameter connector) for good fittment to the face of the user. The advantage of this is that the fittment is good, there are mumtiple sizes to choose from, and insuflation mask are readly available (_they are suppose to be single use only, and are used at every anesthesia, CPR and in many other cases_) and **cheap** (_there are some available for arround 2€ at [medisafe.fr](https://www.medisafe.fr/secours/oxygene/insufflateur-bavu/masque-insufflateur-usage-unique.html#MA285-2612-TAI1140_) for example_). The downside of this method are that firstly these mask tend to deteriorate over time and with use as they are ment to be single use item, however they are obviously swapable so they can be switched when unsusable ; and secondly that the height of these mask and the length of the adapter puts the majority of the mask weight far from the face and thus a bit unconfortable, espacially under quick head movments. For a mask that directly fit on the face, see the [_section on the older version_](#4-older-version). ### 1.b - Filter canister This mask supports standard 40mm threaded canisters - sometimes also known as "_nato threaded_" canisters - which the standard dimensions are defined in [sources/dimension/nato_thread_spec.png](./sources/dimension/nato_thread_spec.png). This mask can support two separate canisters, which can be advantageous if you need more filtration or less resistance to breathing, especially with smaller canisters. If you want to use a single canister, you can plug the other thread using a 40mm canister plug - one of which can be printed from the provided file (_located at_ [(distorsion/)3D-printed-parametric-40mm-gaz-mask-canister/3Dfiles/nato_thread_plug.stl](https://git.deuxfleurs.fr/distorsion/3D-printed-parametric-40mm-gaz-mask-canister/src/branch/main/3Dfiles)) in the _submodule_ mentioned in the next paragraph. We also provide a 3D printed canister following this standard and compatible with this mask and other standard gaz mask in the [distorsion/3D-printed-parametric-respiratory-one-way-valve](https://git.deuxfleurs.fr/distorsion/3D-printed-parametric-40mm-gaz-mask-canister) repository, which is a submodule of this repository located at [./3D-printed-parametric-respiratory-one-way-valve](./). :warning: **WARNING : _Please don't use a 3D printed canister (or even our mask) in life threatening situations !_** :warning: Or at least understand the inner working of gaz mask and test your gaz mask (_especialy its fittment to your face_) before using it. There is also an older version of such a canister modeled within the file of the [_old gaz mask version_](#4-b-_older-versiosn-_-filter-canister). There also exist 3D printed adapter from this standard to other standard gaz mask connector if you search on 3D printing site. ### 1.c - One way valve(s) This maks uses a (_one or two_) 3D printed one-way valve : one for exhaling, and can also use one for inhaling. The design of the one way valve is presented in more detail in the [distorsion/3D-printed-parametric-respiratory-one-way-valve](https://git.deuxfleurs.fr/distorsion/3D-printed-parametric-respiratory-one-way-valve) repository, which is also a submodule of this repository present at [./sources/3D-printed-parametric-respiratory-one-way-valve](./sources/). The "ouput" one way valve (_which is used for exhaling_) is usefull to make breathing easier by not forcing you to exhale through the canister, while preventing air to come in without passing through the canister. A filter can be held in front of this valve to prevent particles from deposing at the exit of this valve, which could reduce its seal while inhaling. However, this valve is an output valve and will thus naturally push away suspended particles, and it is oriented down thus making gravity help in preveting particles from sticking to the valve. Thus to make the mask lighter it is not recommanded to use the longer version of the output valve that is made to hold a filter. An "input" one way valve (_used for inhaling_) can be used to force air to not exit through the canister. This makes both exhaling and inhaling harder, and this thus not recomanded, _at least without tweaking other parameters_. ## 2 - Mask assembly and printing Assembly of the mask is very simple, you wil first need to print : - 1 main adapter from [3Dfiles/adapter_tube.stl](./3Dfiles/) - supplies for the output one-way valve : - 1 base for the one-way valve [3Dfiles/one_way_valve/owv_base_cap.stl](./3Dfiles/one_way_valve/) - either 1 membrane insert for the one-way valve [3Dfiles/one_way_valve/owv_membrane_insert.stl](./3Dfiles/one_way_valve/), or 1 separate membrane (_printed out of TPU_) [3Dfiles/one_way_valve/owv_separate_membrane.stl](./3Dfiles/one_way_valve/) and 1 holder for the membrane [3Dfiles/one_way_valve/owv_separate_membrane_insert.stl](./3Dfiles/one_way_valve/) - _Optionally :_ 1 cap to hold a filter at the exit of the one way valve [3Dfiles/one_way_valve/owv_base_cap.stl](./3Dfiles/one_way_valve/). **_Will rquire modifying the adapter_tube file parameters !_** - _Optionally :_ supplies for an input-one way valve : **_Will rquire modifying the adapter_tube file parameters !_** - 1 base for the one-way valve [3Dfiles/one_way_valve/owv_base_cap.stl](./3Dfiles/one_way_valve/) - either 1 membrane insert for the one-way valve [3Dfiles/one_way_valve/owv_membrane_insert.stl](./3Dfiles/one_way_valve/), or 1 separate membrane (_printed out of TPU_) [3Dfiles/one_way_valve/owv_separate_membrane.stl](./3Dfiles/one_way_valve/) and 1 holder for the membrane [3Dfiles/one_way_valve/owv_separate_membrane_insert.stl](./3Dfiles/one_way_valve/) Everything (_except the separate membrane which is to be printed out of TPU, but can be replaced by a membrane insert_) is very resilient to different print parameters and materials. We would suggest PETG, especially for the _membrane insert_ which has to flex at each breath. Print orientation are quite evident, altough we would suggest priting the adapter tube with the flat "top" surface on the bed, and using miniaml support to support the two threads ment to hold filters and to support the insuflation mask connector. You will also need extra supplies : - 1 insuflation mask of the correct size - ~1m/3ft of elastic to hold the mask to yor face - either 2 compatible filter canister or 1 filter canister and 1 plug To assemble you can connect the insufltion mask to the adapter with the oppenig of the main tube of the adapter pointing toward the chin ; and tie two adjustable elastic loops (_simply tie the elastic to one side, loop it through the other side and tie a knot onto itself so it can slide lengthening/shortening the elastic loop length_) to the two pairs of tie-off points to hold the mask to your face. To assemble the output one-way valve you can first screw the base ([3Dfiles/one_way_valve/owv_base_cap.stl](./3Dfiles/one_way_valve/)) into the main tube of the adapter, with the smoother surface pointing down, until it is right under the tube that connect to the insuflation mask. After greasing the surface you can screw the membrane insert ([3Dfiles/one_way_valve/owv_membrane_insert.stl](./3Dfiles/one_way_valve/)_, or equivalently_ [3Dfiles/one_way_valve/owv_separate_membrane.stl](./3Dfiles/one_way_valve/) _and_ [3Dfiles/one_way_valve/owv_separate_membrane_insert.stl](./3Dfiles/one_way_valve/)) until the membrane makes contact with the smooth surface of the base. If you opted to use an output filter (**_and have accordingly modified the parameters of the adapter tube**), you can no put the filter aterial (_coton, or some other minimaly ait-restricting material_) at the output of the one-way valve, and thread a cap ([3Dfiles/one_way_valve/owv_base_cap.stl](./3Dfiles/one_way_valve/)) to hold it into place. **Note** that if you chose to use an input one-way valve (**_and have accordingly modified the parameters of the adapter tube**), you need to screw the same 3D-prints as for the output one-way valve **before** screwing the ones for the output one-way valve. The pieces for the input one-way valve would be screwed in the same order and orientation as for the output one-way valve, but would be screwed as far as possible into the adapter tube. You can finally screw a canister or plug to each of the two thread, and you have an assembled mask ! ## 3 - Explanation of parameters If you want to changes the parameters of this design, you can edit the _Freecad_ file [3Dfiles/gaz_mask_v8.FCStd](./3Dfiles/), which is fully parametric, with parameters present in the **Spreadsheet**. Parameters are color coded, as is explained in the begining of the **Spreadsheet**. If you want/need to change parameters, we would suggest you play with them and try to understand the impact of each parameters. We will only explain a small selection of important parameters that you are most likely to have to edit. If you need to change multiple parametrs, you can right click on the name of the file in freecad "_gaz_mask_v8_" then enable "_skip recompute_" so that you can change every parameters without recomputes, and the re-enable recomputes and right-click on the "_adapter_tube_" body and click "_recompute_". ### 3.a - Structural parameters _**wall_thickness** :_ \[_default=2.7mm_\] The wall thickness accross the print (_except for the strap attachment point_). Can be tweeked to make the print either stronger or weaker but lighter and faster to print. _**snap_fit_clearance** :_ \[_default=0.09mm_\] The clearance between two objects that would fit togeteher with difficulty. Also impact the clearance betwen threads. ### 3.b - Geometrical parameters _**nt_horizontal_angle** and **nt_vertical_angle** :_ \[_default=20° and 30°_\] The former is the horizontal angle away from the two arms of the adapter tube being perfectly parallel, havig such an angle is usefull to bring the center of mass clother to your face. The latter is similarly the vertical angle of the arms of the adapter tube, which is used to lower the center of mass so the adapter tube doesn't want to rotate around the connector of the insuflation mask under the weight of the filter canister. ### 3.c - Insuflation mask parameters The mask diameter is standard to 22mm (set yt _**imc_max_outer_diameter**_). _**imc_length** :_ \[_default=20mm_\] Length of the connector of the insuflation mask. Can be adapted to your specific mask. ### 3.d - Strap holder parameters _**sh_thickness** :_ \[_default=4mm_\] Thickness of the strap holder. Can be adapted to your material and printing orientation so that you are confident that the strap holder won't break off when wearig the mask. _**sh_bottom_angle** and **sh_top_angle**:_ \[_default=60° and 25°_\] The former is the horizontal angle between the strap holders at the bottom of the adapter tube, and the latter is the angle of the top strap holders around the arm of the adatper tube. _**sh_strap_width** and **sh_strap_hole_width**:_ \[_default=15mm and 3mm_\] Width and passage width of the strap holder. Should be adatper to the elastic strap you are using. ### 3.e - One-way valve Most of the parameters of the one-way valve are described in the readme of the associated repository : [distorsion/3D-printed-parametric-respiratory-one-way-valve](https://git.deuxfleurs.fr/distorsion/3D-printed-parametric-respiratory-one-way-valve). However we want to describe two parameters, as they are menionned here regarding the input one-way valve and the possibility of having a filter on the exit of the output one-way valve : _**has_input_owv_1_yes_0_no** :_ \[_default=0_\] If set to **1** rather than **0**, will add the requiered length to screw an input one-way valve. _**has_output_cover_owv_1_yes_0_no** :_ \[_default=0_\] If set to **1** rather than **0**, will add the requiered length to screw a cap to hold a filter at the exit of the output one-way valve. ## 4 - Older version The older version of the mask - _which was the 5th version_ - can be made either to work with standard 40mm cartrdige (as the newer version), or an integrated canister which makes it more confortable to use. As this version is not the main supported version, we will not go into detail into explanation, and we will foccus on differences with the latest version. We didn't put in the directory the _.stl_ files for this version as it would have to be tweeked t be used anyway. You can edit the _Freecad_ file located at [3Dfiles/older_version/gas_mask_v6.FCStd](./3Dfiles/older_version/) and export bodies to _.stl_ to print them. ### 4.a - _Older version :_ Interfacing with the face This older version used a mold to mold a skirt that then creates a good seal with the face. For this skirt to be effective, the face measures have to be quite precise. In the past we used _silicone caulk_ for both this skirt and the _one-way valve membrane_. Although this is mechanically sound, this degases armfull checmical, and can thus not be worn safelly for at least wees or month if ever. We thus recommand either refining the modling technique to use pourable silicone, or making moldable silcone from pourable two-parts silicone and a filler material like corn starch. **Do your own experiments !** ### 4.b - _Older version :_ Filter canister The integrated filter canister is assembled and printed in the same way as the we provided in the repo and submodule [distorsion/3D-printed-parametric-respiratory-one-way-valve](https://git.deuxfleurs.fr/distorsion/3D-printed-parametric-40mm-gaz-mask-canister). The nato compatible canister simply consisted in an adapter that would provide a base to connect a 40mm gaz mask to the same component as the integrated canister. There is also an adapter that connects to the gaz mask like an integrated canster and converts it to a 40mm gaz mask. This adapter is requiered as it also hold the one-way valve, which with an integrated canister is held in by the canister. everything can be printed without support, except the canister cap which can be printed face down with support only the the central hole. ### 4.c - _Older version :_ One way valve Here the one way valve consist of an insert holding a silicone membrane, which can either be molded or cut off of a silicone sheet. We chose to not use this design anymore as such a soft but small valve, while providing the same (_or even a lower_) cracking pressure as the larger stiffer membrane of the newer design, has the issue of letting air pass when there isn't a high enough negative pressure to close the membrane. ### 4.d - _Older version :_ Short explanation of parameters As with the latest version, parameters are color coded, as is explained in the begining of the **Spreadsheet** within the _Freecad_ file [3Dfiles/older_version/gas_mask_v6.FCStd](./3Dfiles/older_version/). Structural parameters are largely the same between this version and the newest version. Parameters that are presented in gray are target values that can be applied to other parameters (_that share part of the name_) to obtain a certain effect - _mainly using the integrated canister or having the minimal size to use the nato-adapter with a 40mm canister -; which can also be done by seting to **O** istead of **1** the \"_direct mount (1) or nato thread mount (0)_" field associated to the _**dm1_nt0_selector**_ parameter. You will also need to enter face measures, which are denoted by a pink color. You can check "_mask_body -> face_interface -> Boolean -> mask_body_lip -> Pad011 -> **Sketch020**_" to understand the exact meaning of each parameter, and thus how you should measure your own face.