Compare commits

..

23 commits

Author SHA1 Message Date
d22a039218
Update evaluation subproject to latest commit
All checks were successful
/ serve (push) Successful in 1m13s
2025-05-22 20:56:36 +02:00
512bdcbc1a
Update mystmd and tornado package versions in uv.lock 2025-05-22 20:34:27 +02:00
4ef7bfef0f
Update evaluation submodule URL to use HTTPS
All checks were successful
/ serve (push) Successful in 1m14s
2025-05-22 20:33:05 +02:00
252a872aa3
Fix token usage in checkout step of serve workflow
Some checks failed
/ serve (push) Failing after 11s
2025-05-22 20:31:24 +02:00
a364e38ce8
Update evaluation subproject to latest commit
Some checks failed
/ serve (push) Failing after 11s
2025-05-22 20:29:02 +02:00
e369543fe1
Upgrade uv.lock 2025-05-21 17:07:38 +02:00
161f49b6ec
Add evaluation submodule to .gitmodules and initialize subproject 2025-05-21 17:07:12 +02:00
8e22eeda59
Add release badge to README.md for better visibility of project updates 2025-05-19 14:16:59 +02:00
82776c21e9
Update badge styles in README.md for better visibility 2025-05-19 14:15:45 +02:00
216620d00d
Add air consumption analysis section to pneumatic system study
All checks were successful
/ serve (push) Successful in 13m52s
2025-05-15 21:30:02 +02:00
0283569efd
Update cours/BTS MS/TP/01-pneumatique.md 2025-05-09 16:19:20 +02:00
59d1294ba8
Change runner environment from 'uv' to 'myst' in serve workflow
All checks were successful
/ serve (push) Successful in 11m10s
2025-05-08 20:22:35 +02:00
d80efd3aa5
Update submodule URL for courstex to the correct repository
All checks were successful
/ serve (push) Successful in 59s
2025-05-08 18:03:34 +02:00
c10c626123
Add initial draft of pneumatic system study for SAM-B
Some checks failed
/ serve (push) Failing after 50s
2025-05-08 18:00:03 +02:00
c4f097177b
Fix font family formatting in matplotlibrc
All checks were successful
/ serve (push) Successful in 1m4s
2025-05-05 22:48:01 +02:00
5a44f02026
Update font family in matplotlibrc to DejaVuSansMono
All checks were successful
/ serve (push) Successful in 1m10s
2025-05-05 22:44:04 +02:00
55c5153380
Fix zip command to correctly package HTML files for release
All checks were successful
/ serve (push) Successful in 1m9s
2025-05-05 22:39:15 +02:00
b2523aba24
Refactor HTML build step to create and upload a zip archive
All checks were successful
/ serve (push) Successful in 1m9s
2025-05-05 22:33:51 +02:00
77b77778db
Update workflow trigger to respond to version tags instead of main branch 2025-05-05 22:28:15 +02:00
986a493d70
Add release step to upload built HTML artifacts
Some checks failed
/ serve (push) Failing after 1m17s
2025-05-05 22:21:57 +02:00
4ebdd81d59
Refactor code structure for improved readability and maintainability
All checks were successful
/ serve (push) Successful in 59s
2025-05-05 18:05:13 +02:00
6574b6c65d
Update artifact upload action to use Forgejo version
All checks were successful
/ serve (push) Successful in 1m5s
2025-05-05 17:10:23 +02:00
71b8630862
Refactor code structure for improved readability and maintainability
Some checks failed
/ serve (push) Failing after 47s
2025-05-05 16:48:54 +02:00
14 changed files with 1489 additions and 69 deletions

View file

@ -1,32 +1,29 @@
on:
push:
branches:
- "main"
tags:
- 'v*'
jobs:
serve:
runs-on: self-hosted
runs-on: myst
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: "true"
- name: Initialize virtual environment
run: /usr/bin/python -m venv .venv
- name: Install dependencies
run: ./.venv/bin/pip install -r requirements.txt
token: ${{ secrets.FORGEJO_TOKEN }}
- name: Execute code
run: |
. .venv/bin/activate
myst build --execute
run: uv run myst build --execute
- name: Build PDF exports
run: |
. .venv/bin/activate
myst build --execute --pdf
run: uv run myst build --execute --pdf
- name: Build static HTML
run: |
. .venv/bin/activate
myst build --execute --html
- name: Copy files
run: |
rm -rf /data/srv/forgejo-runner/cours4.0
cp -r _build/html /data/srv/forgejo-runner/cours4.0
uv run myst build --execute --html
mkdir -p /tmp/release
cd _build/html
zip -r /tmp/release/html.zip .
- name: Make release
uses: actions/forgejo-release@v2.6.0
with:
direction: upload
release-dir: /tmp/release
token: ${{ secrets.FORGEJO_TOKEN }}

5
.gitmodules vendored
View file

@ -1,3 +1,6 @@
[submodule "courstex"]
path = courstex
url = https://git.edgarpierre.fr/edpibu/courstex.git
url = https://code.edgarpierre.fr/lps/courstex.git
[submodule "evaluation"]
path = evaluation
url = https://code.edgarpierre.fr/lps/evaluation4.0.git

1
.python-version Normal file
View file

@ -0,0 +1 @@
3.13

View file

@ -2,5 +2,6 @@
<https://cours.edgarpierre.fr>
[![Made with MyST](https://img.shields.io/badge/made%20with-myst-orange)](https://myst.tools)
[![Forgejo Actions](https://git.edgarpierre.fr/edpibu/cours4.0/badges/workflows/serve.yaml/badge.svg)](https://git.edgarpierre.fr/edpibu/cours4.0/actions?workflow=serve.yaml)
[![Made with MyST](https://img.shields.io/badge/made%20with-myst-orange?style=for-the-badge&logo=jupyter)](https://myst.tools)
[![Forgejo Actions](https://code.edgarpierre.fr/edpibu/cours4.0/badges/workflows/serve.yaml/badge.svg?style=for-the-badge&label=build)](https://code.edgarpierre.fr/edpibu/cours4.0/actions?workflow=serve.yaml)
[![Release](https://code.edgarpierre.fr/edpibu/cours4.0/badges/release.svg?style=for-the-badge&label=)](https://code.edgarpierre.fr/edpibu/cours4.0/releases/latest)

View file

@ -0,0 +1,92 @@
---
title: Étude du système pneumatique de la SAM-B
subject: TP
export:
- format: pdf
template: courstex
date: 2025-05-09
---
# Introduction
L'objectif de cette activité est d'étudier le système pneumatique de la SAM-B afin d'en comprendre le fonctionnement et d'être capable d'expliquer les choix qui ont été réalisé pour les différents composants.
# Étude des actionneurs
1. À l'aide du schéma pneumatique, identifier les actionneurs pneumatiques présents sur la SAM-B.
_On s'intéresse dans un premier temps uniquement aux vérins._
2. Pour chacun des vérins de la SAM-B, indiquer ses principales caractéristiques.
:::{hint} Conseil
:class: dropdown
Les principales caractéristiques d'un vérin sont :
- son type (simple effet, double effet),
- sa course,
- le diamètre de son piston,
- le diamètre de sa tige.
:::
3. Relever la pression d'alimentation nominale de la SAM-B. Déterminer la force exercée par les vérins en phase sortante.
:::{hint} Conseil
:class: dropdown
Pour calculer l'effort exercé par un vérin, on calcule $F=P\cdot{}S$, où $F$ est la force exercée, $P$ la pression et $S$ la surface du piston.
:::
4. Pour les vérins double effet, déterminer la force exercée par les vérins en phase entrante.
:::{hint} Conseil
:class: dropdown
En phase entrante, il faut penser à retrancher la section de la tige du vérin à la surface du piston.
:::
5. Retrouver sur le [site d'Emerson](https://www.emerson.com/fr-fr) la documentation technique des différents vérins présents. Vérifier les résultats obtenus jusqu'à présent.
6. Comparer la force de retour des différents vérins, et justifier l'utilisation qui est faite de chaque type de vérin dans la SAM-B.
_On s'intéresse désormais au vibrateur de la SAM-B._
7. Rappeler le rôle du vibrateur dans le fonctionnement de la SAM-B.
8. Retrouver sur le [site de Netter](https://www.nettervibration.com/) la documentation technique du vibrateur de la SAM-B. Indiquer ses principales caractéristiques.
:::{hint} Conseil
:class: dropdown
Les principales caractéristiques d'un vibrateur sont :
- sa fréquence nominale,
- la force centrifuge générée,
- la consommation d'air,
- le niveau sonore.
:::
# Distribution pneumatique
9. Retrouver sur le [site d'Emerson](https://www.emerson.com/fr-fr) la documentation technique des distributeurs utilisés sur la SAM-B. Déterminer le débit maximal permis par ces distributeurs.
10. Justifier le choix du distributeur vis-à-vis des besoins de la SAM-B.
# Maintenance du système pneumatique
11. À partir des documentations fournies par les fabricants, établir un tableau récapitulatif de la maintenance à réaliser sur le système pneumatique de la SAM-B.
# Détermination du débit d'air
12. Déterminer le volume des différents vérins présents sur la SAM-B.
Une même quantité de gaz circulant dans un circuit pneumatique occupe un volume différent selon sa pression. Pour quantifier cela, on utilise l'unité du normo mètre cube (Nm{sup}`3`), qui représente le volume qu'occuperait cette quantité de gaz à une température de 15°C à pression atmosphérique (1013.25 hPa).
Pour passer des mètres cubes aux normo mètres cubes, on utilise la formule suivante :
$$
V' = V\cdot{}\frac{P_\text{abs}}{P_\text{ref}}\cdot{}\frac{T_\text{ref}}{T}
$$
13. Déterminer la quantité d'air nécessaire pour déplacer les différents vérins à la pression de service en Nm{sup}`3`.
14. Déterminer la quantité d'air consommée pendant un cycle par la SAM-B (sans activation du vibrateur).
15. Lancer un cycle machine. Déterminer la durée du cycle. En utilisant les données du compteur d'air, déterminer la quantité d'air consommée par la machine durant un cycle.
16. Déterminer le débit d'air moyen consommé par la machine en production.
17. Sélectionner un compresseur parmi la gamme [Atlas Copco GA VSD{sup}`s`](https://www.atlascopco.com/fr-fr/compressors/products/air-compressor/rotary-screw-compressor/ga-vsds-series).

1
evaluation Submodule

@ -0,0 +1 @@
Subproject commit eac5d69f03c63e66fea32294ee3a48ff18facc58

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

6
main.py Normal file
View file

@ -0,0 +1,6 @@
def main():
print("Hello from cours4-0!")
if __name__ == "__main__":
main()

View file

@ -1,6 +1,6 @@
lines.linewidth: 3
font.family: Fira Code
font.family: DejaVu Sans Mono
image.cmap: inferno

View file

@ -24,7 +24,7 @@ project:
site:
template: book-theme
options:
favicon: logo.svg
favicon: favicon.ico
logo: logo.svg
folders: true
hide_footer_links: true

View file

@ -1,38 +0,0 @@
---
title: Scanner 3D
subject: Procédure
subtitle: Scanner une pièce en 3D
abstract: |
L'objectif de cette procédure est de scanner une pièce en 3D avec le scanner Einscan SPv2 et de la post-traiter.
export:
- format: pdf
template: courstex
---
# Installation
Le scanner 3D doit être mis en place sur une surface stable. Le scanner et la pièce ne doivent pas bouger durant le scan.
Le scanner doit être connecté à un ordinateur doté du logiciel EXScan S.
# Calibration
Dans le logiciel EXScan S, suivre les étapes de calibration avec la plaque de calibration fournie :
- installer la plaque dans le support inclinable (l'angle n'a pas d'importance) dans le sens indiqué sur le logiciel, centré sur le plateau rotatif puis lancer la première capture ;
- tourner la plaque comme indiqué sur le logiciel et aligner la rangée droite de points sur le bord du plateau, puis lancer la deuxième capture ;
- réitérer de l'autre côté pour la troisième capture.
Réaliser ensuite la calibration de la balance des blancs (feuille blanche sur le support).
# Scan
Pour une meilleure qualité de scan sur des pièces brillantes, appliquer un spray matifiant sur la pièce avant le scan. Pour une meilleure précision lors d'un scan avec positionnement manuel, on peut appliquer des marqueurs sur la pièce.
On peut paramétrer une luminosité manuellement, ou activer le mode HDR pour un scan de généralement meilleure qualité, mais un peu plus long.
Pour un scan automatique des faces d'une pièce, activer le plateau tournant avec un nombre de stops adapté.
# Post-process
Lors de la génération du maillage, deux options sont proposées : Water-Tight Mesh ou Unwatertight Mesh.
## Water-tight mesh
Ce mode génére un volume fermé automatiquement. Cela prend davantage de temps, et fonctionne uniquement pour un scan propre sans défauts majeurs.
## Unwatertight mesh
Ce mode génére directement la surface obtenue par le scan.

15
pyproject.toml Normal file
View file

@ -0,0 +1,15 @@
[project]
name = "cours4-0"
version = "0.1.0"
description = "Cours 4.0"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"mystmd",
"jupyter-server",
"ipykernel",
"matplotlib",
"numpy",
"pandas",
"scipy",
]

View file

@ -1,7 +0,0 @@
mystmd
jupyter-server
ipykernel
matplotlib
numpy
pandas
scipy

1349
uv.lock generated Normal file

File diff suppressed because it is too large Load diff