Browse Source

synchro

dessins
Christian(Linux) 4 days ago
parent
commit
d887c3b465
  1. 16
      .gitignore
  2. 2276
      Images/L101.svg
  3. 1994
      Images/L102.svg
  4. 1766
      Images/M101.svg
  5. 5482
      Images/PaP_1.svg
  6. 15370
      Images/PaP_2.svg
  7. 2120
      Images/T101.svg
  8. 8482
      Images/profil_roues_cotées.svg
  9. 12904
      Images/vue d'ensemble.svg
  10. 578
      LICENSE
  11. 90
      README.md
  12. 35456
      Remorque_PM_v0-05-03-25-08h30.step
  13. 19946
      Remorque_PM_v0-11-02-25-18h45.step
  14. 25122
      Remorque_PM_v0-12-02-25-23h18.step
  15. 36342
      Remorque_PM_v0-15-02-25-15h00.step
  16. 38254
      Remorque_PM_v0-16-02-25-19h30.step
  17. BIN
      Remorque_PM_v0.FCStd
  18. 730
      quincaillerie/divers/BLPS6-30.stp
  19. 3106
      roues/remorque_roue.step
  20. 334
      tools/export-all-parts.py
  21. 46
      tools/test.bat

16
.gitignore vendored

@ -1,7 +1,17 @@
*.FCStd1 *.FCStd1
_local _local
__pycache__/ __pycache__/
/dist/ /dist/
/tubes/deprec/ /tubes/deprec/
/Images/vue d'ensemble provisoire.svg /Images/vue d'ensemble provisoire.svg
/roues/ROU101B.FCStd /roues/ROU101B.FCStd
/Images/Capture 15-2-25--15h00.JPG
/Images/Capture 16-2-25--19h30.JPG
/Images/L101.JPG
/Images/L102.JPG
/Images/M101.JPG
/Images/Montage_1_2.svg
/Images/Montage_3_4.svg
/Images/Page_1.JPG
/Images/T101.JPG
/quincaillerie/divers/readme-and-terms-of-use-3d-cad-models.txt

2276
Images/L101.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 207 KiB

After

Width:  |  Height:  |  Size: 208 KiB

1994
Images/L102.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 190 KiB

1766
Images/M101.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 173 KiB

5482
Images/PaP_1.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 391 KiB

After

Width:  |  Height:  |  Size: 393 KiB

15370
Images/PaP_2.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

2120
Images/T101.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 197 KiB

8482
Images/profil_roues_cotées.svg

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 550 KiB

After

Width:  |  Height:  |  Size: 554 KiB

12904
Images/vue d'ensemble.svg

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 806 KiB

After

Width:  |  Height:  |  Size: 812 KiB

578
LICENSE

@ -1,289 +1,289 @@
CERN Open Hardware Licence Version 2 - Strongly Reciprocal CERN Open Hardware Licence Version 2 - Strongly Reciprocal
Preamble Preamble
CERN has developed this licence to promote collaboration among CERN has developed this licence to promote collaboration among
hardware designers and to provide a legal tool which supports the hardware designers and to provide a legal tool which supports the
freedom to use, study, modify, share and distribute hardware designs freedom to use, study, modify, share and distribute hardware designs
and products based on those designs. Version 2 of the CERN Open and products based on those designs. Version 2 of the CERN Open
Hardware Licence comes in three variants: CERN-OHL-P (permissive); and Hardware Licence comes in three variants: CERN-OHL-P (permissive); and
two reciprocal licences: CERN-OHL-W (weakly reciprocal) and this two reciprocal licences: CERN-OHL-W (weakly reciprocal) and this
licence, CERN-OHL-S (strongly reciprocal). licence, CERN-OHL-S (strongly reciprocal).
The CERN-OHL-S is copyright CERN 2020. Anyone is welcome to use it, in The CERN-OHL-S is copyright CERN 2020. Anyone is welcome to use it, in
unmodified form only. unmodified form only.
Use of this Licence does not imply any endorsement by CERN of any Use of this Licence does not imply any endorsement by CERN of any
Licensor or their designs nor does it imply any involvement by CERN in Licensor or their designs nor does it imply any involvement by CERN in
their development. their development.
1 Definitions 1 Definitions
1.1 'Licence' means this CERN-OHL-S. 1.1 'Licence' means this CERN-OHL-S.
1.2 'Compatible Licence' means 1.2 'Compatible Licence' means
a) any earlier version of the CERN Open Hardware licence, or a) any earlier version of the CERN Open Hardware licence, or
b) any version of the CERN-OHL-S, or b) any version of the CERN-OHL-S, or
c) any licence which permits You to treat the Source to which c) any licence which permits You to treat the Source to which
it applies as licensed under CERN-OHL-S provided that on it applies as licensed under CERN-OHL-S provided that on
Conveyance of any such Source, or any associated Product You Conveyance of any such Source, or any associated Product You
treat the Source in question as being licensed under treat the Source in question as being licensed under
CERN-OHL-S. CERN-OHL-S.
1.3 'Source' means information such as design materials or digital 1.3 'Source' means information such as design materials or digital
code which can be applied to Make or test a Product or to code which can be applied to Make or test a Product or to
prepare a Product for use, Conveyance or sale, regardless of its prepare a Product for use, Conveyance or sale, regardless of its
medium or how it is expressed. It may include Notices. medium or how it is expressed. It may include Notices.
1.4 'Covered Source' means Source that is explicitly made available 1.4 'Covered Source' means Source that is explicitly made available
under this Licence. under this Licence.
1.5 'Product' means any device, component, work or physical object, 1.5 'Product' means any device, component, work or physical object,
whether in finished or intermediate form, arising from the use, whether in finished or intermediate form, arising from the use,
application or processing of Covered Source. application or processing of Covered Source.
1.6 'Make' means to create or configure something, whether by 1.6 'Make' means to create or configure something, whether by
manufacture, assembly, compiling, loading or applying Covered manufacture, assembly, compiling, loading or applying Covered
Source or another Product or otherwise. Source or another Product or otherwise.
1.7 'Available Component' means any part, sub-assembly, library or 1.7 'Available Component' means any part, sub-assembly, library or
code which: code which:
a) is licensed to You as Complete Source under a Compatible a) is licensed to You as Complete Source under a Compatible
Licence; or Licence; or
b) is available, at the time a Product or the Source containing b) is available, at the time a Product or the Source containing
it is first Conveyed, to You and any other prospective it is first Conveyed, to You and any other prospective
licensees licensees
i) as a physical part with sufficient rights and i) as a physical part with sufficient rights and
information (including any configuration and information (including any configuration and
programming files and information about its programming files and information about its
characteristics and interfaces) to enable it either to characteristics and interfaces) to enable it either to
be Made itself, or to be sourced and used to Make the be Made itself, or to be sourced and used to Make the
Product; or Product; or
ii) as part of the normal distribution of a tool used to ii) as part of the normal distribution of a tool used to
design or Make the Product. design or Make the Product.
1.8 'Complete Source' means the set of all Source necessary to Make 1.8 'Complete Source' means the set of all Source necessary to Make
a Product, in the preferred form for making modifications, a Product, in the preferred form for making modifications,
including necessary installation and interfacing information including necessary installation and interfacing information
both for the Product, and for any included Available Components. both for the Product, and for any included Available Components.
If the format is proprietary, it must also be made available in If the format is proprietary, it must also be made available in
a format (if the proprietary tool can create it) which is a format (if the proprietary tool can create it) which is
viewable with a tool available to potential licensees and viewable with a tool available to potential licensees and
licensed under a licence approved by the Free Software licensed under a licence approved by the Free Software
Foundation or the Open Source Initiative. Complete Source need Foundation or the Open Source Initiative. Complete Source need
not include the Source of any Available Component, provided that not include the Source of any Available Component, provided that
You include in the Complete Source sufficient information to You include in the Complete Source sufficient information to
enable a recipient to Make or source and use the Available enable a recipient to Make or source and use the Available
Component to Make the Product. Component to Make the Product.
1.9 'Source Location' means a location where a Licensor has placed 1.9 'Source Location' means a location where a Licensor has placed
Covered Source, and which that Licensor reasonably believes will Covered Source, and which that Licensor reasonably believes will
remain easily accessible for at least three years for anyone to remain easily accessible for at least three years for anyone to
obtain a digital copy. obtain a digital copy.
1.10 'Notice' means copyright, acknowledgement and trademark notices, 1.10 'Notice' means copyright, acknowledgement and trademark notices,
Source Location references, modification notices (subsection Source Location references, modification notices (subsection
3.3(b)) and all notices that refer to this Licence and to the 3.3(b)) and all notices that refer to this Licence and to the
disclaimer of warranties that are included in the Covered disclaimer of warranties that are included in the Covered
Source. Source.
1.11 'Licensee' or 'You' means any person exercising rights under 1.11 'Licensee' or 'You' means any person exercising rights under
this Licence. this Licence.
1.12 'Licensor' means a natural or legal person who creates or 1.12 'Licensor' means a natural or legal person who creates or
modifies Covered Source. A person may be a Licensee and a modifies Covered Source. A person may be a Licensee and a
Licensor at the same time. Licensor at the same time.
1.13 'Convey' means to communicate to the public or distribute. 1.13 'Convey' means to communicate to the public or distribute.
2 Applicability 2 Applicability
2.1 This Licence governs the use, copying, modification, Conveying 2.1 This Licence governs the use, copying, modification, Conveying
of Covered Source and Products, and the Making of Products. By of Covered Source and Products, and the Making of Products. By
exercising any right granted under this Licence, You irrevocably exercising any right granted under this Licence, You irrevocably
accept these terms and conditions. accept these terms and conditions.
2.2 This Licence is granted by the Licensor directly to You, and 2.2 This Licence is granted by the Licensor directly to You, and
shall apply worldwide and without limitation in time. shall apply worldwide and without limitation in time.
2.3 You shall not attempt to restrict by contract or otherwise the 2.3 You shall not attempt to restrict by contract or otherwise the
rights granted under this Licence to other Licensees. rights granted under this Licence to other Licensees.
2.4 This Licence is not intended to restrict fair use, fair dealing, 2.4 This Licence is not intended to restrict fair use, fair dealing,
or any other similar right. or any other similar right.
3 Copying, modifying and Conveying Covered Source 3 Copying, modifying and Conveying Covered Source
3.1 You may copy and Convey verbatim copies of Covered Source, in 3.1 You may copy and Convey verbatim copies of Covered Source, in
any medium, provided You retain all Notices. any medium, provided You retain all Notices.
3.2 You may modify Covered Source, other than Notices, provided that 3.2 You may modify Covered Source, other than Notices, provided that
You irrevocably undertake to make that modified Covered Source You irrevocably undertake to make that modified Covered Source
available from a Source Location should You Convey a Product in available from a Source Location should You Convey a Product in
circumstances where the recipient does not otherwise receive a circumstances where the recipient does not otherwise receive a
copy of the modified Covered Source. In each case subsection 3.3 copy of the modified Covered Source. In each case subsection 3.3
shall apply. shall apply.
You may only delete Notices if they are no longer applicable to You may only delete Notices if they are no longer applicable to
the corresponding Covered Source as modified by You and You may the corresponding Covered Source as modified by You and You may
add additional Notices applicable to Your modifications. add additional Notices applicable to Your modifications.
Including Covered Source in a larger work is modifying the Including Covered Source in a larger work is modifying the
Covered Source, and the larger work becomes modified Covered Covered Source, and the larger work becomes modified Covered
Source. Source.
3.3 You may Convey modified Covered Source (with the effect that You 3.3 You may Convey modified Covered Source (with the effect that You
shall also become a Licensor) provided that You: shall also become a Licensor) provided that You:
a) retain Notices as required in subsection 3.2; a) retain Notices as required in subsection 3.2;
b) add a Notice to the modified Covered Source stating that You b) add a Notice to the modified Covered Source stating that You
have modified it, with the date and brief description of how have modified it, with the date and brief description of how
You have modified it; You have modified it;
c) add a Source Location Notice for the modified Covered Source c) add a Source Location Notice for the modified Covered Source
if You Convey in circumstances where the recipient does not if You Convey in circumstances where the recipient does not
otherwise receive a copy of the modified Covered Source; and otherwise receive a copy of the modified Covered Source; and
d) license the modified Covered Source under the terms and d) license the modified Covered Source under the terms and
conditions of this Licence (or, as set out in subsection conditions of this Licence (or, as set out in subsection
8.3, a later version, if permitted by the licence of the 8.3, a later version, if permitted by the licence of the
original Covered Source). Such modified Covered Source must original Covered Source). Such modified Covered Source must
be licensed as a whole, but excluding Available Components be licensed as a whole, but excluding Available Components
contained in it, which remain licensed under their own contained in it, which remain licensed under their own
applicable licences. applicable licences.
4 Making and Conveying Products 4 Making and Conveying Products
You may Make Products, and/or Convey them, provided that You either You may Make Products, and/or Convey them, provided that You either
provide each recipient with a copy of the Complete Source or ensure provide each recipient with a copy of the Complete Source or ensure
that each recipient is notified of the Source Location of the Complete that each recipient is notified of the Source Location of the Complete
Source. That Complete Source is Covered Source, and You must Source. That Complete Source is Covered Source, and You must
accordingly satisfy Your obligations set out in subsection 3.3. If accordingly satisfy Your obligations set out in subsection 3.3. If
specified in a Notice, the Product must visibly and securely display specified in a Notice, the Product must visibly and securely display
the Source Location on it or its packaging or documentation in the the Source Location on it or its packaging or documentation in the
manner specified in that Notice. manner specified in that Notice.
5 Research and Development 5 Research and Development
You may Convey Covered Source, modified Covered Source or Products to You may Convey Covered Source, modified Covered Source or Products to
a legal entity carrying out development, testing or quality assurance a legal entity carrying out development, testing or quality assurance
work on Your behalf provided that the work is performed on terms which work on Your behalf provided that the work is performed on terms which
prevent the entity from both using the Source or Products for its own prevent the entity from both using the Source or Products for its own
internal purposes and Conveying the Source or Products or any internal purposes and Conveying the Source or Products or any
modifications to them to any person other than You. Any modifications modifications to them to any person other than You. Any modifications
made by the entity shall be deemed to be made by You pursuant to made by the entity shall be deemed to be made by You pursuant to
subsection 3.2. subsection 3.2.
6 DISCLAIMER AND LIABILITY 6 DISCLAIMER AND LIABILITY
6.1 DISCLAIMER OF WARRANTY -- The Covered Source and any Products 6.1 DISCLAIMER OF WARRANTY -- The Covered Source and any Products
are provided 'as is' and any express or implied warranties, are provided 'as is' and any express or implied warranties,
including, but not limited to, implied warranties of including, but not limited to, implied warranties of
merchantability, of satisfactory quality, non-infringement of merchantability, of satisfactory quality, non-infringement of
third party rights, and fitness for a particular purpose or use third party rights, and fitness for a particular purpose or use
are disclaimed in respect of any Source or Product to the are disclaimed in respect of any Source or Product to the
maximum extent permitted by law. The Licensor makes no maximum extent permitted by law. The Licensor makes no
representation that any Source or Product does not or will not representation that any Source or Product does not or will not
infringe any patent, copyright, trade secret or other infringe any patent, copyright, trade secret or other
proprietary right. The entire risk as to the use, quality, and proprietary right. The entire risk as to the use, quality, and
performance of any Source or Product shall be with You and not performance of any Source or Product shall be with You and not
the Licensor. This disclaimer of warranty is an essential part the Licensor. This disclaimer of warranty is an essential part
of this Licence and a condition for the grant of any rights of this Licence and a condition for the grant of any rights
granted under this Licence. granted under this Licence.
6.2 EXCLUSION AND LIMITATION OF LIABILITY -- The Licensor shall, to 6.2 EXCLUSION AND LIMITATION OF LIABILITY -- The Licensor shall, to
the maximum extent permitted by law, have no liability for the maximum extent permitted by law, have no liability for
direct, indirect, special, incidental, consequential, exemplary, direct, indirect, special, incidental, consequential, exemplary,
punitive or other damages of any character including, without punitive or other damages of any character including, without
limitation, procurement of substitute goods or services, loss of limitation, procurement of substitute goods or services, loss of
use, data or profits, or business interruption, however caused use, data or profits, or business interruption, however caused
and on any theory of contract, warranty, tort (including and on any theory of contract, warranty, tort (including
negligence), product liability or otherwise, arising in any way negligence), product liability or otherwise, arising in any way
in relation to the Covered Source, modified Covered Source in relation to the Covered Source, modified Covered Source
and/or the Making or Conveyance of a Product, even if advised of and/or the Making or Conveyance of a Product, even if advised of
the possibility of such damages, and You shall hold the the possibility of such damages, and You shall hold the
Licensor(s) free and harmless from any liability, costs, Licensor(s) free and harmless from any liability, costs,
damages, fees and expenses, including claims by third parties, damages, fees and expenses, including claims by third parties,
in relation to such use. in relation to such use.
7 Patents 7 Patents
7.1 Subject to the terms and conditions of this Licence, each 7.1 Subject to the terms and conditions of this Licence, each
Licensor hereby grants to You a perpetual, worldwide, Licensor hereby grants to You a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable (except as non-exclusive, no-charge, royalty-free, irrevocable (except as
stated in subsections 7.2 and 8.4) patent license to Make, have stated in subsections 7.2 and 8.4) patent license to Make, have
Made, use, offer to sell, sell, import, and otherwise transfer Made, use, offer to sell, sell, import, and otherwise transfer
the Covered Source and Products, where such licence applies only the Covered Source and Products, where such licence applies only
to those patent claims licensable by such Licensor that are to those patent claims licensable by such Licensor that are
necessarily infringed by exercising rights under the Covered necessarily infringed by exercising rights under the Covered
Source as Conveyed by that Licensor. Source as Conveyed by that Licensor.
7.2 If You institute patent litigation against any entity (including 7.2 If You institute patent litigation against any entity (including
a cross-claim or counterclaim in a lawsuit) alleging that the a cross-claim or counterclaim in a lawsuit) alleging that the
Covered Source or a Product constitutes direct or contributory Covered Source or a Product constitutes direct or contributory
patent infringement, or You seek any declaration that a patent patent infringement, or You seek any declaration that a patent
licensed to You under this Licence is invalid or unenforceable licensed to You under this Licence is invalid or unenforceable
then any rights granted to You under this Licence shall then any rights granted to You under this Licence shall
terminate as of the date such process is initiated. terminate as of the date such process is initiated.
8 General 8 General
8.1 If any provisions of this Licence are or subsequently become 8.1 If any provisions of this Licence are or subsequently become
invalid or unenforceable for any reason, the remaining invalid or unenforceable for any reason, the remaining
provisions shall remain effective. provisions shall remain effective.
8.2 You shall not use any of the name (including acronyms and 8.2 You shall not use any of the name (including acronyms and
abbreviations), image, or logo by which the Licensor or CERN is abbreviations), image, or logo by which the Licensor or CERN is
known, except where needed to comply with section 3, or where known, except where needed to comply with section 3, or where
the use is otherwise allowed by law. Any such permitted use the use is otherwise allowed by law. Any such permitted use
shall be factual and shall not be made so as to suggest any kind shall be factual and shall not be made so as to suggest any kind
of endorsement or implication of involvement by the Licensor or of endorsement or implication of involvement by the Licensor or
its personnel. its personnel.
8.3 CERN may publish updated versions and variants of this Licence 8.3 CERN may publish updated versions and variants of this Licence
which it considers to be in the spirit of this version, but may which it considers to be in the spirit of this version, but may
differ in detail to address new problems or concerns. New differ in detail to address new problems or concerns. New
versions will be published with a unique version number and a versions will be published with a unique version number and a
variant identifier specifying the variant. If the Licensor has variant identifier specifying the variant. If the Licensor has
specified that a given variant applies to the Covered Source specified that a given variant applies to the Covered Source
without specifying a version, You may treat that Covered Source without specifying a version, You may treat that Covered Source
as being released under any version of the CERN-OHL with that as being released under any version of the CERN-OHL with that
variant. If no variant is specified, the Covered Source shall be variant. If no variant is specified, the Covered Source shall be
treated as being released under CERN-OHL-S. The Licensor may treated as being released under CERN-OHL-S. The Licensor may
also specify that the Covered Source is subject to a specific also specify that the Covered Source is subject to a specific
version of the CERN-OHL or any later version in which case You version of the CERN-OHL or any later version in which case You
may apply this or any later version of CERN-OHL with the same may apply this or any later version of CERN-OHL with the same
variant identifier published by CERN. variant identifier published by CERN.
8.4 This Licence shall terminate with immediate effect if You fail 8.4 This Licence shall terminate with immediate effect if You fail
to comply with any of its terms and conditions. to comply with any of its terms and conditions.
8.5 However, if You cease all breaches of this Licence, then Your 8.5 However, if You cease all breaches of this Licence, then Your
Licence from any Licensor is reinstated unless such Licensor has Licence from any Licensor is reinstated unless such Licensor has
terminated this Licence by giving You, while You remain in terminated this Licence by giving You, while You remain in
breach, a notice specifying the breach and requiring You to cure breach, a notice specifying the breach and requiring You to cure
it within 30 days, and You have failed to come into compliance it within 30 days, and You have failed to come into compliance
in all material respects by the end of the 30 day period. Should in all material respects by the end of the 30 day period. Should
You repeat the breach after receipt of a cure notice and You repeat the breach after receipt of a cure notice and
subsequent reinstatement, this Licence will terminate subsequent reinstatement, this Licence will terminate
immediately and permanently. Section 6 shall continue to apply immediately and permanently. Section 6 shall continue to apply
after any termination. after any termination.
8.6 This Licence shall not be enforceable except by a Licensor 8.6 This Licence shall not be enforceable except by a Licensor
acting as such, and third party beneficiary rights are acting as such, and third party beneficiary rights are
specifically excluded. specifically excluded.

90
README.md

@ -1,45 +1,45 @@
# Remorque_PM_v0 # Remorque_PM_v0
Remorque petit modèle (une caisse standard) d'après Greg et le croquis de Gaetan Remorque petit modèle (une caisse standard) d'après Greg et le croquis de Gaetan
sur la base du travail de Macéo sur la base du travail de Macéo
--- attention --- --- attention ---
fait avec FreeCad v0.21.2, peut-être pas lisible correctement avec les versions antérieures fait avec FreeCad v0.21.2, peut-être pas lisible correctement avec les versions antérieures
état au **08/03/2025** - 15h30 état au **08/03/2025** - 15h30
## itération 0.01 avec schémas techniques en 2D (.SVG) ## itération 0.01 avec schémas techniques en 2D (.SVG)
(pas de changement du design 3D) (pas de changement du design 3D)
état au **05/03/2025** - 08h30 état au **05/03/2025** - 08h30
suite discussion du 3/5/25 suite discussion du 3/5/25
### Dimensions: ### Dimensions:
- élargissement de 1 cm en longueur et largeur pour donner du jeu - élargissement de 1 cm en longueur et largeur pour donner du jeu
### Cales latérales: ### Cales latérales:
- reprise des équerres CHO17 pour les quatre côtés en lieu et place des tubes du croquis de Gaetan - reprise des équerres CHO17 pour les quatre côtés en lieu et place des tubes du croquis de Gaetan
- un trou central permet de les remplacer par un bout de tube vertical en alternative (mais fixé par une seule vis) - un trou central permet de les remplacer par un bout de tube vertical en alternative (mais fixé par une seule vis)
### Roulette frontale: ### Roulette frontale:
- la roulette n'est plus celle du Vhélio mais une roulette de roller junior de 63mm facile à trouver (axe 6mm) - la roulette n'est plus celle du Vhélio mais une roulette de roller junior de 63mm facile à trouver (axe 6mm)
- on laisse un peu d'inclinaison vers l'avant pour faciliter le dégagement de la roulette en position roulage - on laisse un peu d'inclinaison vers l'avant pour faciliter le dégagement de la roulette en position roulage
- la remorque serait exactement à l'horizontale pour une taille de roulette de 80mm - la remorque serait exactement à l'horizontale pour une taille de roulette de 80mm
- le deuxième montant M101 accolé au premier est supprimé. L'équerre CHO17 est identique aux trois autres. Elle est centrée donc la roue n'est pas dans l'axe de la remorque. - le deuxième montant M101 accolé au premier est supprimé. L'équerre CHO17 est identique aux trois autres. Elle est centrée donc la roue n'est pas dans l'axe de la remorque.
### Timon: ### Timon:
- l'équerre de fixation est positionnée pour un timon soit horizontal (traction) soit vertical (caddy). Si on veut un timon oblique il suffit de retourner l'équerre. Le timon L102 dispose déjà du trou nécessaire - l'équerre de fixation est positionnée pour un timon soit horizontal (traction) soit vertical (caddy). Si on veut un timon oblique il suffit de retourner l'équerre. Le timon L102 dispose déjà du trou nécessaire
- le timon a été légèrement avancé (modification du perçage L101) pour pouvoir placer la vis tête fraisée plus loin de l'axe sans buter dans les vis verticales (meilleure tenue mécanique) - le timon a été légèrement avancé (modification du perçage L101) pour pouvoir placer la vis tête fraisée plus loin de l'axe sans buter dans les vis verticales (meilleure tenue mécanique)
- une poignee de timon provisoire a été faite avec une équerre CHO17 et un troisième tube M101 - une poignee de timon provisoire a été faite avec une équerre CHO17 et un troisième tube M101
## reste à faire : ## reste à faire :
- extrémité timon définitive (attache au vélo) - extrémité timon définitive (attache au vélo)
- vérifier que les fixations des roues en M8 TH ne bloquent pas le roulement. - vérifier que les fixations des roues en M8 TH ne bloquent pas le roulement.
### GIT : ### GIT :
<https://git.vhelio.org/christian/Remorque_PM_v0> <https://git.vhelio.org/christian/Remorque_PM_v0>

35456
Remorque_PM_v0-05-03-25-08h30.step

File diff suppressed because it is too large Load Diff

19946
Remorque_PM_v0-11-02-25-18h45.step

File diff suppressed because it is too large Load Diff

25122
Remorque_PM_v0-12-02-25-23h18.step

File diff suppressed because it is too large Load Diff

36342
Remorque_PM_v0-15-02-25-15h00.step

File diff suppressed because it is too large Load Diff

38254
Remorque_PM_v0-16-02-25-19h30.step

File diff suppressed because it is too large Load Diff

BIN
Remorque_PM_v0.FCStd

Binary file not shown.

730
quincaillerie/divers/BLPS6-30.stp

@ -1,365 +1,365 @@
ISO-10303-21; ISO-10303-21;
HEADER; HEADER;
/* Generated by software containing ST-Developer /* Generated by software containing ST-Developer
* from STEP Tools, Inc. (www.steptools.com) * from STEP Tools, Inc. (www.steptools.com)
*/ */
/* OPTION: using custom renumber hook */ /* OPTION: using custom renumber hook */
FILE_DESCRIPTION( FILE_DESCRIPTION(
/* description */ ('STEP AP214'), /* description */ ('STEP AP214'),
/* implementation_level */ '2;1'); /* implementation_level */ '2;1');
FILE_NAME( FILE_NAME(
/* name */ 'BLPS6-30', /* name */ 'BLPS6-30',
/* time_stamp */ '2025-02-12T08:24:25+01:00', /* time_stamp */ '2025-02-12T08:24:25+01:00',
/* author */ ('License CC BY-ND 4.0'), /* author */ ('License CC BY-ND 4.0'),
/* organization */ ('CADENAS'), /* organization */ ('CADENAS'),
/* preprocessor_version */ 'ST-DEVELOPER v19.3', /* preprocessor_version */ 'ST-DEVELOPER v19.3',
/* originating_system */ 'PARTsolutions', /* originating_system */ 'PARTsolutions',
/* authorisation */ ' '); /* authorisation */ ' ');
FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}')); FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}'));
ENDSEC; ENDSEC;
DATA; DATA;
#10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12); #10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12);
#11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13); #11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13);
#12=REPRESENTATION('',(#16),#287); #12=REPRESENTATION('',(#16),#287);
#13=REPRESENTATION('',(#17),#287); #13=REPRESENTATION('',(#17),#287);
#14=PROPERTY_DEFINITION('pmi validation property','',#292); #14=PROPERTY_DEFINITION('pmi validation property','',#292);
#15=PROPERTY_DEFINITION('pmi validation property','',#292); #15=PROPERTY_DEFINITION('pmi validation property','',#292);
#16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.)); #16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.));
#17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.)); #17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.));
#18=SHAPE_REPRESENTATION_RELATIONSHIP('','',#152,#19); #18=SHAPE_REPRESENTATION_RELATIONSHIP('','',#152,#19);
#19=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#150),#287); #19=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#150),#287);
#20=TOROIDAL_SURFACE('',#171,13.5,1.); #20=TOROIDAL_SURFACE('',#171,13.5,1.);
#21=SPHERICAL_SURFACE('',#169,1.); #21=SPHERICAL_SURFACE('',#169,1.);
#22=SPHERICAL_SURFACE('',#170,1.00000000000001); #22=SPHERICAL_SURFACE('',#170,1.00000000000001);
#23=B_SPLINE_CURVE_WITH_KNOTS('',3,(#220,#221,#222,#223,#224,#225,#226, #23=B_SPLINE_CURVE_WITH_KNOTS('',3,(#220,#221,#222,#223,#224,#225,#226,
#227,#228,#229,#230),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1,1,1,1, #227,#228,#229,#230),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1),(-0.00213011468239097,-0.00142007645492732,-0.000710038227463658,0., 1),(-0.00213011468239097,-0.00142007645492732,-0.000710038227463658,0.,
0.000710038227463658,0.00142007645492732,0.00213011468239097,0.00284015290985463, 0.000710038227463658,0.00142007645492732,0.00213011468239097,0.00284015290985463,
0.00355019113731829,0.00426022936478195,0.0049702675922456,0.00568030581970926, 0.00355019113731829,0.00426022936478195,0.0049702675922456,0.00568030581970926,
0.00639034404717292,0.00710038227463658,0.00781042050210024), 0.00639034404717292,0.00710038227463658,0.00781042050210024),
.UNSPECIFIED.); .UNSPECIFIED.);
#24=B_SPLINE_CURVE_WITH_KNOTS('',3,(#232,#233,#234,#235,#236,#237,#238, #24=B_SPLINE_CURVE_WITH_KNOTS('',3,(#232,#233,#234,#235,#236,#237,#238,
#239,#240,#241,#242),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1,1,1,1, #239,#240,#241,#242),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1),(-0.00213011468239097,-0.00142007645492732,-0.000710038227463658,0., 1),(-0.00213011468239097,-0.00142007645492732,-0.000710038227463658,0.,
0.000710038227463658,0.00142007645492732,0.00213011468239097,0.00284015290985463, 0.000710038227463658,0.00142007645492732,0.00213011468239097,0.00284015290985463,
0.00355019113731829,0.00426022936478195,0.00497026759224561,0.00568030581970926, 0.00355019113731829,0.00426022936478195,0.00497026759224561,0.00568030581970926,
0.00639034404717292,0.00710038227463658,0.00781042050210024), 0.00639034404717292,0.00710038227463658,0.00781042050210024),
.UNSPECIFIED.); .UNSPECIFIED.);
#25=B_SPLINE_CURVE_WITH_KNOTS('',3,(#253,#254,#255,#256,#257,#258,#259, #25=B_SPLINE_CURVE_WITH_KNOTS('',3,(#253,#254,#255,#256,#257,#258,#259,
#260,#261,#262,#263,#264),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1, #260,#261,#262,#263,#264),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1),(-0.00246096023081856,-0.00164064015387904,-0.000820320076939518, 1,1,1,1,1),(-0.00246096023081856,-0.00164064015387904,-0.000820320076939518,
0.,0.000820320076939518,0.00164064015387904,0.00246096023081855,0.00287112026928831, 0.,0.000820320076939518,0.00164064015387904,0.00246096023081855,0.00287112026928831,
0.00328128030775807,0.00410160038469759,0.00492192046163711,0.00574224053857663, 0.00328128030775807,0.00410160038469759,0.00492192046163711,0.00574224053857663,
0.00656256061551615,0.00738288069245566,0.00820320076939518,0.0090235208463347), 0.00656256061551615,0.00738288069245566,0.00820320076939518,0.0090235208463347),
.UNSPECIFIED.); .UNSPECIFIED.);
#26=B_SPLINE_CURVE_WITH_KNOTS('',3,(#266,#267,#268,#269,#270,#271,#272, #26=B_SPLINE_CURVE_WITH_KNOTS('',3,(#266,#267,#268,#269,#270,#271,#272,
#273,#274,#275,#276,#277),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1, #273,#274,#275,#276,#277),.UNSPECIFIED.,.T.,.F.,(1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1),(-0.00246208055624213,-0.00164138703749475,-0.000820693518747376, 1,1,1,1,1),(-0.00246208055624213,-0.00164138703749475,-0.000820693518747376,
0.,0.000820693518747376,0.00164138703749475,0.00246208055624213,0.0032827740749895, 0.,0.000820693518747376,0.00164138703749475,0.00246208055624213,0.0032827740749895,
0.00369312083436319,0.00410346759373688,0.00492416111248425,0.00574485463123163, 0.00369312083436319,0.00410346759373688,0.00492416111248425,0.00574485463123163,
0.00656554814997901,0.00738624166872638,0.00820693518747376,0.00902762870622113), 0.00656554814997901,0.00738624166872638,0.00820693518747376,0.00902762870622113),
.UNSPECIFIED.); .UNSPECIFIED.);
#27=CYLINDRICAL_SURFACE('',#158,2.99999999999999); #27=CYLINDRICAL_SURFACE('',#158,2.99999999999999);
#28=CYLINDRICAL_SURFACE('',#164,5.50000000000001); #28=CYLINDRICAL_SURFACE('',#164,5.50000000000001);
#29=CONICAL_SURFACE('',#156,2.25,0.349065850398866); #29=CONICAL_SURFACE('',#156,2.25,0.349065850398866);
#30=CONICAL_SURFACE('',#162,5.,0.785398163397448); #30=CONICAL_SURFACE('',#162,5.,0.785398163397448);
#31=CONICAL_SURFACE('',#166,5.50000000000001,0.785398163397448); #31=CONICAL_SURFACE('',#166,5.50000000000001,0.785398163397448);
#32=ORIENTED_EDGE('',*,*,#54,.F.); #32=ORIENTED_EDGE('',*,*,#54,.F.);
#33=ORIENTED_EDGE('',*,*,#55,.F.); #33=ORIENTED_EDGE('',*,*,#55,.F.);
#34=ORIENTED_EDGE('',*,*,#54,.T.); #34=ORIENTED_EDGE('',*,*,#54,.T.);
#35=ORIENTED_EDGE('',*,*,#56,.F.); #35=ORIENTED_EDGE('',*,*,#56,.F.);
#36=ORIENTED_EDGE('',*,*,#57,.T.); #36=ORIENTED_EDGE('',*,*,#57,.T.);
#37=ORIENTED_EDGE('',*,*,#58,.T.); #37=ORIENTED_EDGE('',*,*,#58,.T.);
#38=ORIENTED_EDGE('',*,*,#55,.T.); #38=ORIENTED_EDGE('',*,*,#55,.T.);
#39=ORIENTED_EDGE('',*,*,#59,.F.); #39=ORIENTED_EDGE('',*,*,#59,.F.);
#40=ORIENTED_EDGE('',*,*,#56,.T.); #40=ORIENTED_EDGE('',*,*,#56,.T.);
#41=ORIENTED_EDGE('',*,*,#60,.F.); #41=ORIENTED_EDGE('',*,*,#60,.F.);
#42=ORIENTED_EDGE('',*,*,#59,.T.); #42=ORIENTED_EDGE('',*,*,#59,.T.);
#43=ORIENTED_EDGE('',*,*,#61,.F.); #43=ORIENTED_EDGE('',*,*,#61,.F.);
#44=ORIENTED_EDGE('',*,*,#62,.T.); #44=ORIENTED_EDGE('',*,*,#62,.T.);
#45=ORIENTED_EDGE('',*,*,#63,.T.); #45=ORIENTED_EDGE('',*,*,#63,.T.);
#46=ORIENTED_EDGE('',*,*,#60,.T.); #46=ORIENTED_EDGE('',*,*,#60,.T.);
#47=ORIENTED_EDGE('',*,*,#64,.F.); #47=ORIENTED_EDGE('',*,*,#64,.F.);
#48=ORIENTED_EDGE('',*,*,#61,.T.); #48=ORIENTED_EDGE('',*,*,#61,.T.);
#49=ORIENTED_EDGE('',*,*,#64,.T.); #49=ORIENTED_EDGE('',*,*,#64,.T.);
#50=ORIENTED_EDGE('',*,*,#58,.F.); #50=ORIENTED_EDGE('',*,*,#58,.F.);
#51=ORIENTED_EDGE('',*,*,#57,.F.); #51=ORIENTED_EDGE('',*,*,#57,.F.);
#52=ORIENTED_EDGE('',*,*,#62,.F.); #52=ORIENTED_EDGE('',*,*,#62,.F.);
#53=ORIENTED_EDGE('',*,*,#63,.F.); #53=ORIENTED_EDGE('',*,*,#63,.F.);
#54=EDGE_CURVE('',#65,#65,#76,.T.); #54=EDGE_CURVE('',#65,#65,#76,.T.);
#55=EDGE_CURVE('',#66,#66,#77,.T.); #55=EDGE_CURVE('',#66,#66,#77,.T.);
#56=EDGE_CURVE('',#67,#67,#78,.T.); #56=EDGE_CURVE('',#67,#67,#78,.T.);
#57=EDGE_CURVE('',#68,#68,#23,.T.); #57=EDGE_CURVE('',#68,#68,#23,.T.);
#58=EDGE_CURVE('',#69,#69,#24,.T.); #58=EDGE_CURVE('',#69,#69,#24,.T.);
#59=EDGE_CURVE('',#70,#70,#79,.T.); #59=EDGE_CURVE('',#70,#70,#79,.T.);
#60=EDGE_CURVE('',#71,#71,#80,.T.); #60=EDGE_CURVE('',#71,#71,#80,.T.);
#61=EDGE_CURVE('',#72,#72,#81,.T.); #61=EDGE_CURVE('',#72,#72,#81,.T.);
#62=EDGE_CURVE('',#73,#73,#25,.T.); #62=EDGE_CURVE('',#73,#73,#25,.T.);
#63=EDGE_CURVE('',#74,#74,#26,.T.); #63=EDGE_CURVE('',#74,#74,#26,.T.);
#64=EDGE_CURVE('',#75,#75,#82,.T.); #64=EDGE_CURVE('',#75,#75,#82,.T.);
#65=VERTEX_POINT('',#213); #65=VERTEX_POINT('',#213);
#66=VERTEX_POINT('',#216); #66=VERTEX_POINT('',#216);
#67=VERTEX_POINT('',#219); #67=VERTEX_POINT('',#219);
#68=VERTEX_POINT('',#231); #68=VERTEX_POINT('',#231);
#69=VERTEX_POINT('',#243); #69=VERTEX_POINT('',#243);
#70=VERTEX_POINT('',#246); #70=VERTEX_POINT('',#246);
#71=VERTEX_POINT('',#249); #71=VERTEX_POINT('',#249);
#72=VERTEX_POINT('',#252); #72=VERTEX_POINT('',#252);
#73=VERTEX_POINT('',#265); #73=VERTEX_POINT('',#265);
#74=VERTEX_POINT('',#278); #74=VERTEX_POINT('',#278);
#75=VERTEX_POINT('',#281); #75=VERTEX_POINT('',#281);
#76=CIRCLE('',#155,2.25); #76=CIRCLE('',#155,2.25);
#77=CIRCLE('',#157,3.); #77=CIRCLE('',#157,3.);
#78=CIRCLE('',#159,2.99999999999999); #78=CIRCLE('',#159,2.99999999999999);
#79=CIRCLE('',#161,5.); #79=CIRCLE('',#161,5.);
#80=CIRCLE('',#163,5.50000000000001); #80=CIRCLE('',#163,5.50000000000001);
#81=CIRCLE('',#165,5.50000000000001); #81=CIRCLE('',#165,5.50000000000001);
#82=CIRCLE('',#167,5.00000000000001); #82=CIRCLE('',#167,5.00000000000001);
#83=EDGE_LOOP('',(#32)); #83=EDGE_LOOP('',(#32));
#84=EDGE_LOOP('',(#33)); #84=EDGE_LOOP('',(#33));
#85=EDGE_LOOP('',(#34)); #85=EDGE_LOOP('',(#34));
#86=EDGE_LOOP('',(#35)); #86=EDGE_LOOP('',(#35));
#87=EDGE_LOOP('',(#36)); #87=EDGE_LOOP('',(#36));
#88=EDGE_LOOP('',(#37)); #88=EDGE_LOOP('',(#37));
#89=EDGE_LOOP('',(#38)); #89=EDGE_LOOP('',(#38));
#90=EDGE_LOOP('',(#39)); #90=EDGE_LOOP('',(#39));
#91=EDGE_LOOP('',(#40)); #91=EDGE_LOOP('',(#40));
#92=EDGE_LOOP('',(#41)); #92=EDGE_LOOP('',(#41));
#93=EDGE_LOOP('',(#42)); #93=EDGE_LOOP('',(#42));
#94=EDGE_LOOP('',(#43)); #94=EDGE_LOOP('',(#43));
#95=EDGE_LOOP('',(#44)); #95=EDGE_LOOP('',(#44));
#96=EDGE_LOOP('',(#45)); #96=EDGE_LOOP('',(#45));
#97=EDGE_LOOP('',(#46)); #97=EDGE_LOOP('',(#46));
#98=EDGE_LOOP('',(#47)); #98=EDGE_LOOP('',(#47));
#99=EDGE_LOOP('',(#48)); #99=EDGE_LOOP('',(#48));
#100=EDGE_LOOP('',(#49)); #100=EDGE_LOOP('',(#49));
#101=EDGE_LOOP('',(#50)); #101=EDGE_LOOP('',(#50));
#102=EDGE_LOOP('',(#51)); #102=EDGE_LOOP('',(#51));
#103=EDGE_LOOP('',(#52)); #103=EDGE_LOOP('',(#52));
#104=EDGE_LOOP('',(#53)); #104=EDGE_LOOP('',(#53));
#105=FACE_BOUND('',#83,.T.); #105=FACE_BOUND('',#83,.T.);
#106=FACE_BOUND('',#84,.T.); #106=FACE_BOUND('',#84,.T.);
#107=FACE_BOUND('',#85,.T.); #107=FACE_BOUND('',#85,.T.);
#108=FACE_BOUND('',#86,.T.); #108=FACE_BOUND('',#86,.T.);
#109=FACE_BOUND('',#87,.T.); #109=FACE_BOUND('',#87,.T.);
#110=FACE_BOUND('',#88,.T.); #110=FACE_BOUND('',#88,.T.);
#111=FACE_BOUND('',#89,.T.); #111=FACE_BOUND('',#89,.T.);
#112=FACE_BOUND('',#90,.T.); #112=FACE_BOUND('',#90,.T.);
#113=FACE_BOUND('',#91,.T.); #113=FACE_BOUND('',#91,.T.);
#114=FACE_BOUND('',#92,.T.); #114=FACE_BOUND('',#92,.T.);
#115=FACE_BOUND('',#93,.T.); #115=FACE_BOUND('',#93,.T.);
#116=FACE_BOUND('',#94,.T.); #116=FACE_BOUND('',#94,.T.);
#117=FACE_BOUND('',#95,.T.); #117=FACE_BOUND('',#95,.T.);
#118=FACE_BOUND('',#96,.T.); #118=FACE_BOUND('',#96,.T.);
#119=FACE_BOUND('',#97,.T.); #119=FACE_BOUND('',#97,.T.);
#120=FACE_BOUND('',#98,.T.); #120=FACE_BOUND('',#98,.T.);
#121=FACE_BOUND('',#99,.T.); #121=FACE_BOUND('',#99,.T.);
#122=FACE_BOUND('',#100,.T.); #122=FACE_BOUND('',#100,.T.);
#123=FACE_BOUND('',#101,.T.); #123=FACE_BOUND('',#101,.T.);
#124=FACE_BOUND('',#102,.T.); #124=FACE_BOUND('',#102,.T.);
#125=FACE_BOUND('',#103,.T.); #125=FACE_BOUND('',#103,.T.);
#126=FACE_BOUND('',#104,.T.); #126=FACE_BOUND('',#104,.T.);
#127=PLANE('',#154); #127=PLANE('',#154);
#128=PLANE('',#160); #128=PLANE('',#160);
#129=PLANE('',#168); #129=PLANE('',#168);
#130=ADVANCED_FACE('',(#105),#127,.F.); #130=ADVANCED_FACE('',(#105),#127,.F.);
#131=ADVANCED_FACE('',(#106,#107),#29,.T.); #131=ADVANCED_FACE('',(#106,#107),#29,.T.);
#132=ADVANCED_FACE('',(#108,#109,#110,#111),#27,.T.); #132=ADVANCED_FACE('',(#108,#109,#110,#111),#27,.T.);
#133=ADVANCED_FACE('',(#112,#113),#128,.F.); #133=ADVANCED_FACE('',(#112,#113),#128,.F.);
#134=ADVANCED_FACE('',(#114,#115),#30,.T.); #134=ADVANCED_FACE('',(#114,#115),#30,.T.);
#135=ADVANCED_FACE('',(#116,#117,#118,#119),#28,.T.); #135=ADVANCED_FACE('',(#116,#117,#118,#119),#28,.T.);
#136=ADVANCED_FACE('',(#120,#121),#31,.T.); #136=ADVANCED_FACE('',(#120,#121),#31,.T.);
#137=ADVANCED_FACE('',(#122),#129,.F.); #137=ADVANCED_FACE('',(#122),#129,.F.);
#138=ADVANCED_FACE('',(#123),#21,.T.); #138=ADVANCED_FACE('',(#123),#21,.T.);
#139=ADVANCED_FACE('',(#124),#22,.T.); #139=ADVANCED_FACE('',(#124),#22,.T.);
#140=ADVANCED_FACE('',(#125,#126),#20,.T.); #140=ADVANCED_FACE('',(#125,#126),#20,.T.);
#141=CLOSED_SHELL('',(#130,#131,#132,#133,#134,#135,#136,#137,#138,#139, #141=CLOSED_SHELL('',(#130,#131,#132,#133,#134,#135,#136,#137,#138,#139,
#140)); #140));
#142=STYLED_ITEM('',(#143),#150); #142=STYLED_ITEM('',(#143),#150);
#143=PRESENTATION_STYLE_ASSIGNMENT((#144)); #143=PRESENTATION_STYLE_ASSIGNMENT((#144));
#144=SURFACE_STYLE_USAGE(.BOTH.,#145); #144=SURFACE_STYLE_USAGE(.BOTH.,#145);
#145=SURFACE_SIDE_STYLE('',(#146)); #145=SURFACE_SIDE_STYLE('',(#146));
#146=SURFACE_STYLE_FILL_AREA(#147); #146=SURFACE_STYLE_FILL_AREA(#147);
#147=FILL_AREA_STYLE('',(#148)); #147=FILL_AREA_STYLE('',(#148));
#148=FILL_AREA_STYLE_COLOUR('',#149); #148=FILL_AREA_STYLE_COLOUR('',#149);
#149=COLOUR_RGB('',0.689999997615814,0.689999997615814,0.689999997615814); #149=COLOUR_RGB('',0.689999997615814,0.689999997615814,0.689999997615814);
#150=MANIFOLD_SOLID_BREP('BLPS6-30',#141); #150=MANIFOLD_SOLID_BREP('BLPS6-30',#141);
#151=SHAPE_DEFINITION_REPRESENTATION(#292,#152); #151=SHAPE_DEFINITION_REPRESENTATION(#292,#152);
#152=SHAPE_REPRESENTATION('BLPS6-30',(#153),#287); #152=SHAPE_REPRESENTATION('BLPS6-30',(#153),#287);
#153=AXIS2_PLACEMENT_3D('',#210,#172,#173); #153=AXIS2_PLACEMENT_3D('',#210,#172,#173);
#154=AXIS2_PLACEMENT_3D('',#211,#174,#175); #154=AXIS2_PLACEMENT_3D('',#211,#174,#175);
#155=AXIS2_PLACEMENT_3D('',#212,#176,#177); #155=AXIS2_PLACEMENT_3D('',#212,#176,#177);
#156=AXIS2_PLACEMENT_3D('',#214,#178,#179); #156=AXIS2_PLACEMENT_3D('',#214,#178,#179);
#157=AXIS2_PLACEMENT_3D('',#215,#180,#181); #157=AXIS2_PLACEMENT_3D('',#215,#180,#181);
#158=AXIS2_PLACEMENT_3D('',#217,#182,#183); #158=AXIS2_PLACEMENT_3D('',#217,#182,#183);
#159=AXIS2_PLACEMENT_3D('',#218,#184,#185); #159=AXIS2_PLACEMENT_3D('',#218,#184,#185);
#160=AXIS2_PLACEMENT_3D('',#244,#186,#187); #160=AXIS2_PLACEMENT_3D('',#244,#186,#187);
#161=AXIS2_PLACEMENT_3D('',#245,#188,#189); #161=AXIS2_PLACEMENT_3D('',#245,#188,#189);
#162=AXIS2_PLACEMENT_3D('',#247,#190,#191); #162=AXIS2_PLACEMENT_3D('',#247,#190,#191);
#163=AXIS2_PLACEMENT_3D('',#248,#192,#193); #163=AXIS2_PLACEMENT_3D('',#248,#192,#193);
#164=AXIS2_PLACEMENT_3D('',#250,#194,#195); #164=AXIS2_PLACEMENT_3D('',#250,#194,#195);
#165=AXIS2_PLACEMENT_3D('',#251,#196,#197); #165=AXIS2_PLACEMENT_3D('',#251,#196,#197);
#166=AXIS2_PLACEMENT_3D('',#279,#198,#199); #166=AXIS2_PLACEMENT_3D('',#279,#198,#199);
#167=AXIS2_PLACEMENT_3D('',#280,#200,#201); #167=AXIS2_PLACEMENT_3D('',#280,#200,#201);
#168=AXIS2_PLACEMENT_3D('',#282,#202,#203); #168=AXIS2_PLACEMENT_3D('',#282,#202,#203);
#169=AXIS2_PLACEMENT_3D('',#283,#204,#205); #169=AXIS2_PLACEMENT_3D('',#283,#204,#205);
#170=AXIS2_PLACEMENT_3D('',#284,#206,#207); #170=AXIS2_PLACEMENT_3D('',#284,#206,#207);
#171=AXIS2_PLACEMENT_3D('',#285,#208,#209); #171=AXIS2_PLACEMENT_3D('',#285,#208,#209);
#172=DIRECTION('',(0.,0.,1.)); #172=DIRECTION('',(0.,0.,1.));
#173=DIRECTION('',(1.,0.,0.)); #173=DIRECTION('',(1.,0.,0.));
#174=DIRECTION('',(1.,0.,0.)); #174=DIRECTION('',(1.,0.,0.));
#175=DIRECTION('',(0.,0.,-1.)); #175=DIRECTION('',(0.,0.,-1.));
#176=DIRECTION('',(1.,0.,0.)); #176=DIRECTION('',(1.,0.,0.));
#177=DIRECTION('',(0.,0.,-1.)); #177=DIRECTION('',(0.,0.,-1.));
#178=DIRECTION('',(1.,0.,0.)); #178=DIRECTION('',(1.,0.,0.));
#179=DIRECTION('',(0.,0.,-1.)); #179=DIRECTION('',(0.,0.,-1.));
#180=DIRECTION('',(1.,0.,0.)); #180=DIRECTION('',(1.,0.,0.));
#181=DIRECTION('',(0.,0.,-1.)); #181=DIRECTION('',(0.,0.,-1.));
#182=DIRECTION('',(1.,0.,0.)); #182=DIRECTION('',(1.,0.,0.));
#183=DIRECTION('',(0.,0.,-1.)); #183=DIRECTION('',(0.,0.,-1.));
#184=DIRECTION('',(1.,0.,0.)); #184=DIRECTION('',(1.,0.,0.));
#185=DIRECTION('',(0.,0.,-1.)); #185=DIRECTION('',(0.,0.,-1.));
#186=DIRECTION('',(1.,0.,0.)); #186=DIRECTION('',(1.,0.,0.));
#187=DIRECTION('',(0.,0.,-1.)); #187=DIRECTION('',(0.,0.,-1.));
#188=DIRECTION('',(1.,0.,0.)); #188=DIRECTION('',(1.,0.,0.));
#189=DIRECTION('',(0.,0.,-1.)); #189=DIRECTION('',(0.,0.,-1.));
#190=DIRECTION('',(1.,0.,0.)); #190=DIRECTION('',(1.,0.,0.));
#191=DIRECTION('',(0.,0.,-1.)); #191=DIRECTION('',(0.,0.,-1.));
#192=DIRECTION('',(1.,0.,0.)); #192=DIRECTION('',(1.,0.,0.));
#193=DIRECTION('',(0.,0.,-1.)); #193=DIRECTION('',(0.,0.,-1.));
#194=DIRECTION('',(1.,0.,0.)); #194=DIRECTION('',(1.,0.,0.));
#195=DIRECTION('',(0.,0.,-1.)); #195=DIRECTION('',(0.,0.,-1.));
#196=DIRECTION('',(1.,0.,0.)); #196=DIRECTION('',(1.,0.,0.));
#197=DIRECTION('',(0.,0.,-1.)); #197=DIRECTION('',(0.,0.,-1.));
#198=DIRECTION('',(-1.,0.,0.)); #198=DIRECTION('',(-1.,0.,0.));
#199=DIRECTION('',(0.,0.,1.)); #199=DIRECTION('',(0.,0.,1.));
#200=DIRECTION('',(1.,0.,0.)); #200=DIRECTION('',(1.,0.,0.));
#201=DIRECTION('',(0.,0.,-1.)); #201=DIRECTION('',(0.,0.,-1.));
#202=DIRECTION('',(-1.,0.,0.)); #202=DIRECTION('',(-1.,0.,0.));
#203=DIRECTION('',(0.,0.,1.)); #203=DIRECTION('',(0.,0.,1.));
#204=DIRECTION('',(0.,-1.,0.)); #204=DIRECTION('',(0.,-1.,0.));
#205=DIRECTION('',(1.,0.,0.)); #205=DIRECTION('',(1.,0.,0.));
#206=DIRECTION('',(0.,-1.,0.)); #206=DIRECTION('',(0.,-1.,0.));
#207=DIRECTION('',(1.,0.,0.)); #207=DIRECTION('',(1.,0.,0.));
#208=DIRECTION('',(0.,0.,-1.)); #208=DIRECTION('',(0.,0.,-1.));
#209=DIRECTION('',(-1.,0.,0.)); #209=DIRECTION('',(-1.,0.,0.));
#210=CARTESIAN_POINT('',(0.,0.,0.)); #210=CARTESIAN_POINT('',(0.,0.,0.));
#211=CARTESIAN_POINT('',(-37.,0.,0.)); #211=CARTESIAN_POINT('',(-37.,0.,0.));
#212=CARTESIAN_POINT('',(-37.,0.,0.)); #212=CARTESIAN_POINT('',(-37.,0.,0.));
#213=CARTESIAN_POINT('',(-37.,0.,-2.25)); #213=CARTESIAN_POINT('',(-37.,0.,-2.25));
#214=CARTESIAN_POINT('',(-37.,0.,0.)); #214=CARTESIAN_POINT('',(-37.,0.,0.));
#215=CARTESIAN_POINT('',(-34.939391935409,0.,0.)); #215=CARTESIAN_POINT('',(-34.939391935409,0.,0.));
#216=CARTESIAN_POINT('',(-34.939391935409,0.,-3.)); #216=CARTESIAN_POINT('',(-34.939391935409,0.,-3.));
#217=CARTESIAN_POINT('',(22.,0.,0.)); #217=CARTESIAN_POINT('',(22.,0.,0.));
#218=CARTESIAN_POINT('',(0.,0.,0.)); #218=CARTESIAN_POINT('',(0.,0.,0.));
#219=CARTESIAN_POINT('',(0.,0.,-2.99999999999999)); #219=CARTESIAN_POINT('',(0.,0.,-2.99999999999999));
#220=CARTESIAN_POINT('',(-30.2981054466722,2.93158539532437,-0.716503329431903)); #220=CARTESIAN_POINT('',(-30.2981054466722,2.93158539532437,-0.716503329431903));
#221=CARTESIAN_POINT('',(-30.0519402412929,3.03411824740147,0.000468119148707335)); #221=CARTESIAN_POINT('',(-30.0519402412929,3.03411824740147,0.000468119148707335));
#222=CARTESIAN_POINT('',(-30.2979811322214,2.93194167262263,0.714630852837074)); #222=CARTESIAN_POINT('',(-30.2979811322214,2.93194167262263,0.714630852837074));
#223=CARTESIAN_POINT('',(-30.9971605241931,2.80911142335978,1.04742458569903)); #223=CARTESIAN_POINT('',(-30.9971605241931,2.80911142335978,1.04742458569903));
#224=CARTESIAN_POINT('',(-31.7021489159825,2.93161683609581,0.716156218118217)); #224=CARTESIAN_POINT('',(-31.7021489159825,2.93161683609581,0.716156218118217));
#225=CARTESIAN_POINT('',(-31.9476955277396,3.03403455836936,0.000582337814804714)); #225=CARTESIAN_POINT('',(-31.9476955277396,3.03403455836936,0.000582337814804714));
#226=CARTESIAN_POINT('',(-31.7032195308964,2.93224428441228,-0.713663068037461)); #226=CARTESIAN_POINT('',(-31.7032195308964,2.93224428441228,-0.713663068037461));
#227=CARTESIAN_POINT('',(-31.002624886804,2.80904374522738,-1.04757940533916)); #227=CARTESIAN_POINT('',(-31.002624886804,2.80904374522738,-1.04757940533916));
#228=CARTESIAN_POINT('',(-30.2981054466722,2.93158539532437,-0.716503329431903)); #228=CARTESIAN_POINT('',(-30.2981054466722,2.93158539532437,-0.716503329431903));
#229=CARTESIAN_POINT('',(-30.0519402412929,3.03411824740147,0.000468119148707335)); #229=CARTESIAN_POINT('',(-30.0519402412929,3.03411824740147,0.000468119148707335));
#230=CARTESIAN_POINT('',(-30.2979811322214,2.93194167262263,0.714630852837074)); #230=CARTESIAN_POINT('',(-30.2979811322214,2.93194167262263,0.714630852837074));
#231=CARTESIAN_POINT('',(-30.1339745906775,3.00000000959214,0.)); #231=CARTESIAN_POINT('',(-30.1339745906775,3.00000000959214,0.));
#232=CARTESIAN_POINT('',(-31.7018945533278,-2.93158539532437,-0.716503329431905)); #232=CARTESIAN_POINT('',(-31.7018945533278,-2.93158539532437,-0.716503329431905));
#233=CARTESIAN_POINT('',(-31.9480597587071,-3.03411824740147,0.000468119148708433)); #233=CARTESIAN_POINT('',(-31.9480597587071,-3.03411824740147,0.000468119148708433));
#234=CARTESIAN_POINT('',(-31.7020188677786,-2.93194167262263,0.714630852837071)); #234=CARTESIAN_POINT('',(-31.7020188677786,-2.93194167262263,0.714630852837071));
#235=CARTESIAN_POINT('',(-31.0028394758069,-2.80911142335978,1.04742458569903)); #235=CARTESIAN_POINT('',(-31.0028394758069,-2.80911142335978,1.04742458569903));
#236=CARTESIAN_POINT('',(-30.2978510840175,-2.93161683609581,0.716156218118216)); #236=CARTESIAN_POINT('',(-30.2978510840175,-2.93161683609581,0.716156218118216));
#237=CARTESIAN_POINT('',(-30.0523044722604,-3.03403455836936,0.000582337814806098)); #237=CARTESIAN_POINT('',(-30.0523044722604,-3.03403455836936,0.000582337814806098));
#238=CARTESIAN_POINT('',(-30.2967804691036,-2.93224428441228,-0.713663068037466)); #238=CARTESIAN_POINT('',(-30.2967804691036,-2.93224428441228,-0.713663068037466));
#239=CARTESIAN_POINT('',(-30.997375113196,-2.80904374522738,-1.04757940533915)); #239=CARTESIAN_POINT('',(-30.997375113196,-2.80904374522738,-1.04757940533915));
#240=CARTESIAN_POINT('',(-31.7018945533278,-2.93158539532437,-0.716503329431905)); #240=CARTESIAN_POINT('',(-31.7018945533278,-2.93158539532437,-0.716503329431905));
#241=CARTESIAN_POINT('',(-31.9480597587071,-3.03411824740147,0.000468119148708433)); #241=CARTESIAN_POINT('',(-31.9480597587071,-3.03411824740147,0.000468119148708433));
#242=CARTESIAN_POINT('',(-31.7020188677786,-2.93194167262263,0.714630852837071)); #242=CARTESIAN_POINT('',(-31.7020188677786,-2.93194167262263,0.714630852837071));
#243=CARTESIAN_POINT('',(-31.8660254093225,-3.00000000959215,0.)); #243=CARTESIAN_POINT('',(-31.8660254093225,-3.00000000959215,0.));
#244=CARTESIAN_POINT('',(0.,2.99999999999999,0.)); #244=CARTESIAN_POINT('',(0.,2.99999999999999,0.));
#245=CARTESIAN_POINT('',(0.,0.,0.)); #245=CARTESIAN_POINT('',(0.,0.,0.));
#246=CARTESIAN_POINT('',(0.,0.,-5.)); #246=CARTESIAN_POINT('',(0.,0.,-5.));
#247=CARTESIAN_POINT('',(0.,0.,0.)); #247=CARTESIAN_POINT('',(0.,0.,0.));
#248=CARTESIAN_POINT('',(0.5,0.,0.)); #248=CARTESIAN_POINT('',(0.5,0.,0.));
#249=CARTESIAN_POINT('',(0.5,0.,-5.50000000000001)); #249=CARTESIAN_POINT('',(0.5,0.,-5.50000000000001));
#250=CARTESIAN_POINT('',(22.,0.,0.)); #250=CARTESIAN_POINT('',(22.,0.,0.));
#251=CARTESIAN_POINT('',(21.5,0.,0.)); #251=CARTESIAN_POINT('',(21.5,0.,0.));
#252=CARTESIAN_POINT('',(21.5,0.,-5.50000000000001)); #252=CARTESIAN_POINT('',(21.5,0.,-5.50000000000001));
#253=CARTESIAN_POINT('',(17.6194312615033,5.48813338978463,0.57415151186354)); #253=CARTESIAN_POINT('',(17.6194312615033,5.48813338978463,0.57415151186354));
#254=CARTESIAN_POINT('',(17.5097323066621,5.51353154212275,-0.327718277324678)); #254=CARTESIAN_POINT('',(17.5097323066621,5.51353154212275,-0.327718277324678));
#255=CARTESIAN_POINT('',(18.1009847553462,5.41219550585469,-0.996489588489896)); #255=CARTESIAN_POINT('',(18.1009847553462,5.41219550585469,-0.996489588489896));
#256=CARTESIAN_POINT('',(18.9778194968378,5.3999459311365,-1.04349206785208)); #256=CARTESIAN_POINT('',(18.9778194968378,5.3999459311365,-1.04349206785208));
#257=CARTESIAN_POINT('',(19.5807170594394,5.47070822967605,-0.649099616948038)); #257=CARTESIAN_POINT('',(19.5807170594394,5.47070822967605,-0.649099616948038));
#258=CARTESIAN_POINT('',(19.8013933984028,5.50402992337341,-0.127109769368597)); #258=CARTESIAN_POINT('',(19.8013933984028,5.50402992337341,-0.127109769368597));
#259=CARTESIAN_POINT('',(19.7397963544495,5.49436026569588,0.439103483839107)); #259=CARTESIAN_POINT('',(19.7397963544495,5.49436026569588,0.439103483839107));
#260=CARTESIAN_POINT('',(19.2146447673061,5.41989979678556,0.956157238682612)); #260=CARTESIAN_POINT('',(19.2146447673061,5.41989979678556,0.956157238682612));
#261=CARTESIAN_POINT('',(18.3527875610899,5.39329609535734,1.0745283614827)); #261=CARTESIAN_POINT('',(18.3527875610899,5.39329609535734,1.0745283614827));
#262=CARTESIAN_POINT('',(17.6194312615033,5.48813338978463,0.57415151186354)); #262=CARTESIAN_POINT('',(17.6194312615033,5.48813338978463,0.57415151186354));
#263=CARTESIAN_POINT('',(17.5097323066621,5.51353154212275,-0.327718277324678)); #263=CARTESIAN_POINT('',(17.5097323066621,5.51353154212275,-0.327718277324678));
#264=CARTESIAN_POINT('',(18.1009847553462,5.41219550585469,-0.996489588489896)); #264=CARTESIAN_POINT('',(18.1009847553462,5.41219550585469,-0.996489588489896));
#265=CARTESIAN_POINT('',(17.626557540583,5.49240917735505,-0.288868530987511)); #265=CARTESIAN_POINT('',(17.626557540583,5.49240917735505,-0.288868530987511));
#266=CARTESIAN_POINT('',(18.1031266079147,-5.4120476825642,-0.997658966791885)); #266=CARTESIAN_POINT('',(18.1031266079147,-5.4120476825642,-0.997658966791885));
#267=CARTESIAN_POINT('',(17.5094168210087,-5.51351319050868,-0.326742921871018)); #267=CARTESIAN_POINT('',(17.5094168210087,-5.51351319050868,-0.326742921871018));
#268=CARTESIAN_POINT('',(17.6185513515484,-5.48835461953138,0.571419468350888)); #268=CARTESIAN_POINT('',(17.6185513515484,-5.48835461953138,0.571419468350888));
#269=CARTESIAN_POINT('',(18.3508974718185,-5.39331605936612,1.07489418908395)); #269=CARTESIAN_POINT('',(18.3508974718185,-5.39331605936612,1.07489418908395));
#270=CARTESIAN_POINT('',(19.2148642508201,-5.41993684712511,0.955541258251998)); #270=CARTESIAN_POINT('',(19.2148642508201,-5.41993684712511,0.955541258251998));
#271=CARTESIAN_POINT('',(19.7369021961461,-5.49392903087277,0.442599076295526)); #271=CARTESIAN_POINT('',(19.7369021961461,-5.49392903087277,0.442599076295526));
#272=CARTESIAN_POINT('',(19.8022162417969,-5.50416611407539,-0.121165597034992)); #272=CARTESIAN_POINT('',(19.8022162417969,-5.50416611407539,-0.121165597034992));
#273=CARTESIAN_POINT('',(19.5847944257621,-5.47124191486014,-0.645740897244751)); #273=CARTESIAN_POINT('',(19.5847944257621,-5.47124191486014,-0.645740897244751));
#274=CARTESIAN_POINT('',(18.9778159438532,-5.39990499073232,-1.04374283751222)); #274=CARTESIAN_POINT('',(18.9778159438532,-5.39990499073232,-1.04374283751222));
#275=CARTESIAN_POINT('',(18.1031266079147,-5.4120476825642,-0.997658966791885)); #275=CARTESIAN_POINT('',(18.1031266079147,-5.4120476825642,-0.997658966791885));
#276=CARTESIAN_POINT('',(17.5094168210087,-5.51351319050868,-0.326742921871018)); #276=CARTESIAN_POINT('',(17.5094168210087,-5.51351319050868,-0.326742921871018));
#277=CARTESIAN_POINT('',(17.6185513515484,-5.48835461953138,0.571419468350888)); #277=CARTESIAN_POINT('',(17.6185513515484,-5.48835461953138,0.571419468350888));
#278=CARTESIAN_POINT('',(17.626557540583,-5.49240917735505,-0.288868530987511)); #278=CARTESIAN_POINT('',(17.626557540583,-5.49240917735505,-0.288868530987511));
#279=CARTESIAN_POINT('',(21.5,0.,0.)); #279=CARTESIAN_POINT('',(21.5,0.,0.));
#280=CARTESIAN_POINT('',(22.,0.,0.)); #280=CARTESIAN_POINT('',(22.,0.,0.));
#281=CARTESIAN_POINT('',(22.,0.,-5.00000000000001)); #281=CARTESIAN_POINT('',(22.,0.,-5.00000000000001));
#282=CARTESIAN_POINT('',(22.,5.00000000000001,0.)); #282=CARTESIAN_POINT('',(22.,5.00000000000001,0.));
#283=CARTESIAN_POINT('',(-31.,-2.49999999999999,0.)); #283=CARTESIAN_POINT('',(-31.,-2.49999999999999,0.));
#284=CARTESIAN_POINT('',(-31.,2.49999999999999,0.)); #284=CARTESIAN_POINT('',(-31.,2.49999999999999,0.));
#285=CARTESIAN_POINT('',(31.,0.,0.)); #285=CARTESIAN_POINT('',(31.,0.,0.));
#286=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#142), #286=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#142),
#287); #287);
#287=( #287=(
GEOMETRIC_REPRESENTATION_CONTEXT(3) GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#288)) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#288))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#291,#290,#289)) GLOBAL_UNIT_ASSIGNED_CONTEXT((#291,#290,#289))
REPRESENTATION_CONTEXT('BLPS6-30','TOP_LEVEL_ASSEMBLY_PART') REPRESENTATION_CONTEXT('BLPS6-30','TOP_LEVEL_ASSEMBLY_PART')
); );
#288=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#291, #288=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#291,
'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); 'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
#289=( #289=(
NAMED_UNIT(*) NAMED_UNIT(*)
SI_UNIT($,.STERADIAN.) SI_UNIT($,.STERADIAN.)
SOLID_ANGLE_UNIT() SOLID_ANGLE_UNIT()
); );
#290=( #290=(
NAMED_UNIT(*) NAMED_UNIT(*)
PLANE_ANGLE_UNIT() PLANE_ANGLE_UNIT()
SI_UNIT($,.RADIAN.) SI_UNIT($,.RADIAN.)
); );
#291=( #291=(
LENGTH_UNIT() LENGTH_UNIT()
NAMED_UNIT(*) NAMED_UNIT(*)
SI_UNIT(.MILLI.,.METRE.) SI_UNIT(.MILLI.,.METRE.)
); );
#292=PRODUCT_DEFINITION_SHAPE('','',#293); #292=PRODUCT_DEFINITION_SHAPE('','',#293);
#293=PRODUCT_DEFINITION('','',#295,#294); #293=PRODUCT_DEFINITION('','',#295,#294);
#294=PRODUCT_DEFINITION_CONTEXT('',#301,'design'); #294=PRODUCT_DEFINITION_CONTEXT('',#301,'design');
#295=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#297, #295=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#297,
.NOT_KNOWN.); .NOT_KNOWN.);
#296=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#297)); #296=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#297));
#297=PRODUCT('BLPS6-30','BLPS6-30','BLPS6-30',(#299)); #297=PRODUCT('BLPS6-30','BLPS6-30','BLPS6-30',(#299));
#298=PRODUCT_CATEGORY('',''); #298=PRODUCT_CATEGORY('','');
#299=PRODUCT_CONTEXT('',#301,'mechanical'); #299=PRODUCT_CONTEXT('',#301,'mechanical');
#300=APPLICATION_PROTOCOL_DEFINITION('international standard', #300=APPLICATION_PROTOCOL_DEFINITION('international standard',
'automotive_design',2010,#301); 'automotive_design',2010,#301);
#301=APPLICATION_CONTEXT( #301=APPLICATION_CONTEXT(
'core data for automotive mechanical design processes'); 'core data for automotive mechanical design processes');
ENDSEC; ENDSEC;
END-ISO-10303-21; END-ISO-10303-21;

3106
roues/remorque_roue.step

File diff suppressed because it is too large Load Diff

334
tools/export-all-parts.py

@ -1,167 +1,167 @@
from pathlib import Path from pathlib import Path
import os import os
import FreeCAD as App import FreeCAD as App
import Import import Import
import ImportGui import ImportGui
project_folder = os.getcwd() project_folder = os.getcwd()
output_folder = project_folder + '/dist/STEP' output_folder = project_folder + '/dist/STEP'
assemblies_output_folder = project_folder + '/dist/FCStd' assemblies_output_folder = project_folder + '/dist/FCStd'
def close_all_docs(): def close_all_docs():
while len(App.listDocuments().values()) > 0: while len(App.listDocuments().values()) > 0:
App.closeDocument(list(App.listDocuments().values())[0].Name) App.closeDocument(list(App.listDocuments().values())[0].Name)
def convert_file(file_name, output_format): def convert_file(file_name, output_format):
doc = App.open(project_folder + '\\' + file_name) doc = App.open(project_folder + '\\' + file_name)
root_objects = [] root_objects = []
main_object = None main_object = None
#print("document: " + doc.Name) #print("document: " + doc.Name)
print("document: " + doc.Name) print("document: " + doc.Name)
for obj in doc.Objects: for obj in doc.Objects:
if len(obj.Parents) == 0: if len(obj.Parents) == 0:
#print(obj.Label) #print(obj.Label)
print("Object Label : " + obj.Label) print("Object Label : " + obj.Label)
root_objects.append(obj) root_objects.append(obj)
if obj.Label == doc.Name or obj.Label == doc.Name + ' (experimental)': if obj.Label == doc.Name or obj.Label == doc.Name + ' (experimental)':
main_object = obj main_object = obj
if main_object is None and len(root_objects) == 1: if main_object is None and len(root_objects) == 1:
main_object = root_objects[0] main_object = root_objects[0]
if main_object is None: if main_object is None:
raise Exception("Can't find main object in file " + file_name + " (found " + str(len(root_objects)) + " root object(s), none named like the document " + doc.Name + ")") raise Exception("Can't find main object in file " + file_name + " (found " + str(len(root_objects)) + " root object(s), none named like the document " + doc.Name + ")")
if 'experimental' in main_object.Label or 'expérimental' in main_object.Label: if 'experimental' in main_object.Label or 'expérimental' in main_object.Label:
print('Document ' + doc.Name + ' is marked as experimental and will be ignored') print('Document ' + doc.Name + ' is marked as experimental and will be ignored')
close_all_docs() close_all_docs()
return return
secondary_objects = [] secondary_objects = []
code_obj = doc.getObjectsByLabel('Code_Tube_Draft') code_obj = doc.getObjectsByLabel('Code_Tube_Draft')
# #
print("len(code_obj) : " + str(len(code_obj))) print("len(code_obj) : " + str(len(code_obj)))
if len(code_obj) == 1: if len(code_obj) == 1:
code_obj = code_obj[0] code_obj = code_obj[0]
#code_obj.Label = 'Code_Tube' #code_obj.Label = 'Code_Tube'
#secondary_objects.append(code_obj) #secondary_objects.append(code_obj)
# engrave code on tube # engrave code on tube
#code_pocket = main_object.newObjectAt('PartDesign::Pocket','Pocket', [code_obj]) #code_pocket = main_object.newObjectAt('PartDesign::Pocket','Pocket', [code_obj])
code_pocket = main_object.newObject('PartDesign::Pocket','Pocket') code_pocket = main_object.newObject('PartDesign::Pocket','Pocket')
code_pocket.Profile = code_obj code_pocket.Profile = code_obj
code_pocket.Length = 0.2 code_pocket.Length = 0.2
code_pocket.recompute() code_pocket.recompute()
main_object.recompute() main_object.recompute()
if len(secondary_objects) > 0: if len(secondary_objects) > 0:
group = doc.addObject('App::Part', 'Groupe') group = doc.addObject('App::Part', 'Groupe')
group.addObject(main_object) group.addObject(main_object)
for obj in secondary_objects: for obj in secondary_objects:
group.addObject(obj) group.addObject(obj)
main_object = group main_object = group
output_path = output_folder + '/' + os.path.dirname(file_name) + '/' + Path(file_name).stem + '.' + output_format output_path = output_folder + '/' + os.path.dirname(file_name) + '/' + Path(file_name).stem + '.' + output_format
output_dir = os.path.dirname(output_path) output_dir = os.path.dirname(output_path)
if not os.path.exists(output_dir): if not os.path.exists(output_dir):
os.makedirs(output_dir) os.makedirs(output_dir)
if output_format.lower() == 'stpz': if output_format.lower() == 'stpz':
import stepZ import stepZ
stepZ.export([main_object], output_path) stepZ.export([main_object], output_path)
else: else:
Import.export([main_object], output_path) Import.export([main_object], output_path)
close_all_docs() close_all_docs()
def convert_assembly(file_name, output_format): def convert_assembly(file_name, output_format):
print("Exporting assembly " + file_name + "...") print("Exporting assembly " + file_name + "...")
doc = App.open(project_folder + '/' + file_name) doc = App.open(project_folder + '/' + file_name)
root_objects = [] root_objects = []
main_object = None main_object = None
# remove all objects that are not visible, or not in the TypeId whitelist, because we don't want to export those # remove all objects that are not visible, or not in the TypeId whitelist, because we don't want to export those
need_check_objects = True need_check_objects = True
while need_check_objects: while need_check_objects:
need_check_objects = False need_check_objects = False
for obj in doc.Objects: for obj in doc.Objects:
if not obj.Visibility or obj.TypeId not in ['Part::Feature', 'Part::FeaturePython', 'PartDesign::Body', 'Part::Mirroring', 'Part::Cut', 'Part::Part2DObjectPython', 'Part::MultiFuse', 'Part::Loft', 'Part::Torus', 'Part::Cylinder', 'App::DocumentObjectGroup', 'App::Part', 'App::Link']: if not obj.Visibility or obj.TypeId not in ['Part::Feature', 'Part::FeaturePython', 'PartDesign::Body', 'Part::Mirroring', 'Part::Cut', 'Part::Part2DObjectPython', 'Part::MultiFuse', 'Part::Loft', 'Part::Torus', 'Part::Cylinder', 'App::DocumentObjectGroup', 'App::Part', 'App::Link']:
#print('removing ' + obj.Name + ' ('+obj.Label+')') #print('removing ' + obj.Name + ' ('+obj.Label+')')
doc.removeObject(obj.Name) doc.removeObject(obj.Name)
need_check_objects = True need_check_objects = True
break break
for obj in doc.Objects: for obj in doc.Objects:
if len(obj.Parents) == 0: if len(obj.Parents) == 0:
#print(obj.Label) #print(obj.Label)
root_objects.append(obj) root_objects.append(obj)
if obj.Label == doc.Name: if obj.Label == doc.Name:
main_object = obj main_object = obj
if main_object is None and len(root_objects) == 1: if main_object is None and len(root_objects) == 1:
main_object = root_objects[0] main_object = root_objects[0]
if main_object is None: if main_object is None:
raise Exception("Can't find main assembly in file " + file_name + " (found " + str(len(root_objects)) + " root object(s), none named like the document " + doc.Name + ")") raise Exception("Can't find main assembly in file " + file_name + " (found " + str(len(root_objects)) + " root object(s), none named like the document " + doc.Name + ")")
output_path = output_folder + '/' + os.path.dirname(file_name) + '/' + Path(file_name).stem + '.' + output_format output_path = output_folder + '/' + os.path.dirname(file_name) + '/' + Path(file_name).stem + '.' + output_format
output_dir = os.path.dirname(output_path) output_dir = os.path.dirname(output_path)
if not os.path.exists(output_dir): if not os.path.exists(output_dir):
os.makedirs(output_dir) os.makedirs(output_dir)
if output_format.lower() == 'stpz': if output_format.lower() == 'stpz':
import stepZ import stepZ
stepZ.export([main_object], output_path) stepZ.export([main_object], output_path)
else: else:
ImportGui.export([main_object], output_path) ImportGui.export([main_object], output_path)
close_all_docs() close_all_docs()
def export_configuration(doc, config_name, output_filename): def export_configuration(doc, config_name, output_filename):
print('Generating assembly for configuration '+config_name+'...') print('Generating assembly for configuration '+config_name+'...')
Gui.Selection.clearSelection() Gui.Selection.clearSelection()
Gui.Selection.addSelection('vheliotech','Model','Configurations.'+doc.getObjectsByLabel(config_name)[0].Name+'.') Gui.Selection.addSelection('vheliotech','Model','Configurations.'+doc.getObjectsByLabel(config_name)[0].Name+'.')
Gui.runCommand('Asm4_applyConfiguration') Gui.runCommand('Asm4_applyConfiguration')
Gui.Selection.clearSelection() Gui.Selection.clearSelection()
doc.saveAs(assemblies_output_folder + '/' + output_filename + '.FCStd') doc.saveAs(assemblies_output_folder + '/' + output_filename + '.FCStd')
try: try:
folders = [ folders = [
#'chaudronnerie', #'chaudronnerie',
'tubes' 'tubes'
] ]
for folder in folders: for folder in folders:
files = os.listdir(project_folder + '\\' + folder) files = os.listdir(project_folder + '\\' + folder)
for source_file in files: for source_file in files:
if not source_file.endswith('.FCStd'): continue if not source_file.endswith('.FCStd'): continue
source_path = folder + '\\' + source_file source_path = folder + '\\' + source_file
print(source_path) print(source_path)
convert_file(source_path, 'step') convert_file(source_path, 'step')
# #
print ("back from convert") print ("back from convert")
# convert_assembly('vheliotech.FCStd', 'step') # convert_assembly('vheliotech.FCStd', 'step')
# '''doc = App.open(project_folder + '/vheliotech.FCStd') # '''doc = App.open(project_folder + '/vheliotech.FCStd')
# export_configuration(doc, 'Config_Integrale', 'vheliotech-config-integrale') # export_configuration(doc, 'Config_Integrale', 'vheliotech-config-integrale')
# export_configuration(doc, 'Config_Solaire', 'vheliotech-config-solaire') # export_configuration(doc, 'Config_Solaire', 'vheliotech-config-solaire')
# export_configuration(doc, 'Config_Motorisee', 'vheliotech-config-motorisee') # export_configuration(doc, 'Config_Motorisee', 'vheliotech-config-motorisee')
# export_configuration(doc, 'Config_Basique', 'vheliotech-config-basique') # export_configuration(doc, 'Config_Basique', 'vheliotech-config-basique')
# close_all_docs()''' # close_all_docs()'''
except Exception as e: except Exception as e:
print(e) print(e)
# exit FreeCAD # exit FreeCAD
close_all_docs() close_all_docs()
# FreeCADGui.getMainWindow().close() # FreeCADGui.getMainWindow().close()
Gui.runCommand('Std_Quit') Gui.runCommand('Std_Quit')

46
tools/test.bat

@ -1,24 +1,24 @@
:: Set the path to your FreeCAD executable here :: Set the path to your FreeCAD executable here
set FREECAD=C:\Program Files\FreeCAD 0.21\bin\freecad.exe set FREECAD=C:\Program Files\FreeCAD 0.21\bin\freecad.exe
set SCRIPT_DIR=%~dp0 set SCRIPT_DIR=%~dp0
echo %SCRIPT_DIR% >>%TMP%\toto.txt echo %SCRIPT_DIR% >>%TMP%\toto.txt
cd %script_dir% cd %script_dir%
echo %cd% >>%TMP%\toto.txt echo %cd% >>%TMP%\toto.txt
cd .. cd ..
echo %cd% >>%TMP%\toto.txt echo %cd% >>%TMP%\toto.txt
:: rm -rf ./dist :: rm -rf ./dist
:: Check script syntax before starting freecad :: Check script syntax before starting freecad
:: python3 -m py_compile tools/export-all-parts.py :: python3 -m py_compile tools/export-all-parts.py
:: Export all versioned files :: Export all versioned files
:: mkdir -p dist/FCStd :: mkdir -p dist/FCStd
:: git archive HEAD . | tar -x -C dist/FCStd :: git archive HEAD . | tar -x -C dist/FCStd
:: Start freecad to run the script. We must start freecad with GUI (otherwise we can't export colors). We start it hidden in a virtual framebuffer (xvfb) so that it can run cleanly in the background. :: Start freecad to run the script. We must start freecad with GUI (otherwise we can't export colors). We start it hidden in a virtual framebuffer (xvfb) so that it can run cleanly in the background.
:: xvfb-run $FREECAD tools/export-all-parts.py :: xvfb-run $FREECAD tools/export-all-parts.py
:: %freecad%/freecad.exe tools/export-all-parts.py :: %freecad%/freecad.exe tools/export-all-parts.py
echo %freecad% echo %freecad%
start "" "%freecad%" tools/export-all-parts.py start "" "%freecad%" tools/export-all-parts.py
Loading…
Cancel
Save