Commit Graph

265 Commits

Author SHA1 Message Date
looooo
b38bfda072 remove expression for involute gear dw, it doesn't update correctly 2023-01-22 19:42:41 +01:00
looooo
23a649cd23 add gear-shaft example 2023-01-17 20:03:13 +01:00
looooo
bc41c864a1 traverse pitch computation 2022-12-28 13:32:51 +01:00
looooo
84026d912b fix involute-gear computation 2022-12-15 19:15:46 +01:00
lorenz
ba87611235 fix computed property dw 2022-12-15 18:25:44 +01:00
looooo
29e45aa613 fix rack traverse_pitch 2022-10-23 17:34:23 +02:00
Benjamin Vedder
60db69f302 Added HTD8 timing gear 2022-09-08 13:36:58 +02:00
looooo
4e6223bffa Merge branch 'develop' of https://github.com/looooo/freecad.gears into develop 2022-06-10 14:18:54 +02:00
looooo
07bfe0446d do not use pythonocc-core 2022-06-10 14:18:37 +02:00
lorenz
05d2afef44 InvoluteGearRack: properties_from_tool default = False 2022-05-03 14:48:55 +02:00
looooo
2ede7f0bdc Merge branch 'develop' of https://github.com/looooo/freecad.gears into develop 2022-02-22 11:07:24 +01:00
looooo
6042cb8b4d add root-fillet for cycloid rack 2022-02-22 11:07:02 +01:00
luz paz
2e25ba6b97 Add extra metadata to package.xml 2022-02-21 10:34:55 +01:00
looooo
6a9baf4fed add package.xml 2022-02-20 12:14:04 +01:00
looooo
1cf83e7344 gear-rack add fillets 2022-02-10 14:15:19 +01:00
looooo
39e5ce1378 add head-fillet for cycloid gear racks 2022-02-02 23:33:47 +01:00
Jonas Bähr
9f1e87bedb Calculate pitch diameter and angular backlash via expressions
Using expressions instead of filling these values in the `execute` method
has the advantage that the values can be used in other expressions on the
same object. First, the expressions are evaluated, then the feature is
"executed". Previously, the changed values are only available after the
execution and thus had no effect if e.g. used in calculating the
placement of the very same gear (until another recompute happens).
2022-01-12 11:24:06 +01:00
Jonas Bähr
7c4723c9b7 Interpret the backlash as "Circumferential Backlash"
This fixes some unit mismatch, as the backlash is specified as length,
but the involute tooth generation code used to interpret it as angular
value in radians (no idea why it was additionaly diveded by four; we need
the half on each side of the tooth).
Now half of the value specified as "backlash" can be directly measured at
the pitch circle when comparing each tooth flank of a gear with and
without backlash.
2022-01-08 11:03:26 +01:00
Jonas Bähr
d0e7720988 Fix head and clearance for the cycloid gear
Head and cleance values have been applied only once, but as we're dealing
with a diameter, not a radius, they are needed twice. (The involute gear
does not suffer from this bug)
2022-01-04 20:08:52 +01:00
Jonas Bähr
da42164552 Use expression as inner_diameter for cycloid gear
The cycloid gear is created with a default number of teeth of 15 and an
`inner_diameter` of 7.5. That is half the number of teeth and results in
an hypocycloid going orthogonal from the pitch circle right to the center.
This change now replaces the hard coded value "7.5" with the expression
"teeth / 2" so that this straight hypocycloid is kept, even if the number
of teeth is adapted. This allows easy reduction of the number of teeth
(down to two, in fact) without the recomputation to fail.
2022-01-04 20:05:28 +01:00
looooo
73f6b7f1f7 Merge branch 'develop' of https://github.com/looooo/freecad.gears into develop 2021-12-16 13:20:43 +01:00
looooo
590994984f connector: add support for internal involute gears 2021-12-16 13:20:11 +01:00
luz paz
b4783df755 Fix source comment typos 2021-12-07 21:19:20 +01:00
looooo
2ecc0e8744 cycloid gear rack: some fixes 2021-12-07 11:58:10 +01:00
looooo
d77f5c1ab4 connector: add support for racks 2021-12-06 21:03:14 +01:00
looooo
4aa2559629 connector: add support for cycloid gears 2021-12-04 14:07:08 +01:00
looooo
5846ffbfdc connector: add support for shifted gears 2021-12-04 13:25:20 +01:00
looooo
7edc50c32d some clean up 2021-12-02 15:14:06 +01:00
looooo
05abf3054d first prototyp for gear connector 2021-12-02 15:09:21 +01:00
looooo
10d4bf0bbf add missing files for gear connector 2021-12-02 12:45:49 +01:00
looooo
ea904a2a7d add prototype for gear connector 2021-12-02 12:44:34 +01:00
looooo
0eca70d832 change size of image 2021-12-01 13:28:57 +01:00
looooo
469e00cd98 add cycloid rack image 2021-12-01 13:26:12 +01:00
looooo
3668892abe cycloidgearrack additions 2021-12-01 11:10:27 +01:00
looooo
8b8f8e0779 cycloide gear rack 2021-11-30 15:27:52 +01:00
Scott Mudge
ef73b66040 add icon in same style as existing cycloid gear 2021-11-27 13:39:36 +01:00
Scott Mudge
89e99bef0e fix bugs 2021-11-24 15:00:51 +01:00
looooo
15f3f2410d add proto cycloide rack, fix icons-issue 2021-11-23 14:46:39 +01:00
looooo
fd363e2b84 some simplifications 2021-11-03 14:53:27 +01:00
looooo
81d6a77218 refactoring involute gear 2021-10-21 12:01:49 +02:00
lorenz
b75336b0ea fix lgtm allert 2021-10-19 10:46:32 +02:00
looooo
95a14777b9 use icons in treeview 2021-10-19 10:44:36 +02:00
looooo
7cb84f17e1 minor fix for the cycloide gear 2021-09-30 11:26:58 +02:00
looooo
b7a4192f70 fix internalgear, to work with head-, rootfillets 2021-09-29 10:40:45 +02:00
looooo
4db17dd2b0 fix internal gear 2021-09-29 10:21:00 +02:00
Jonas Bähr
165b52d967 Speedup the double helical gear generation significantly
It turned out that the "moving up" of the gear shape was responsible for
the majority of processing time: it took 10x longer then the pipe
creation and 100x longer then the mirroring.
Now the moving is done of the helix and base face so that the other faces
are generated directly where they should be, thus preventing a movement
of all of them.
In addition, as we don't have to transform the final shape, we don't have
to use transformGeometry, but just change the placement via translate --
again much faster.
2021-09-29 10:17:20 +02:00
Jonas Bähr
f1531a183b Cleanup: harmonize helicalextrusion and helicalextrusion2
The now only helicalextrusion is the one working on a face, not a wire,
and allows extrusions of "faces with holes". This is required for the
internal gears but also allows e.g. center holes for ordinary gears as
well (not in this commit).
2021-09-29 10:17:11 +02:00
Jonas Bähr
055aab2e07 Build the helical internal gear directly, not via boolen cut
The original, now replaced, way had the benefit of reusing the existing
helicalextrusion method, but the following boolean cut operation was a)
slow and b) suffered from co-planar issues. The new way extrudes the
face directly which does not have these shortcommings.
Unfortunaly, we had to use a different API: the original one is simple
and straight forward, gives no easy way to access the end of the sweep.
Collecting the wires manually, filtering on the position of all vertexes,
unvailed tolerances heigher then 0.1, so that a face created from it was
not planar and prevented ceating a valid solid.
The now used API requires more manual work in the initial setup, but the
end wires for construction the top face are directly accesible and the
tolerances are below 0.001 so we can create a planar face and valid solid.
This new way also much faster (1.6 sec vs. 5.0 sec on my machine
using default gear parameters on a double helix, naively measured via
`time.perf_counter()`).
Currently, the new helical extusion method is only used for the internal
gear. Migrating the other usages will be done as a separate commit.
2021-09-29 10:15:10 +02:00
Jonas Bähr
c40bae47b3 Give the internal involute gear its own icon 2021-09-29 10:14:41 +02:00
Jonas Bähr
6daa3114be Add an "internal involute gear" command and feature
This reuses the same (external) tooth profile from pygear but swap some
parameters to make the resulting gear internal.
This prototype is mostly a copy of the external involute gear. Eventually
we should refactor this to share more code but this has to be coordinated
with the megagrant endevour. Otherwise merging becomes a nightmere.
Note that in contrast to the involute rack I choose to base the
"thickness" on the pitch diameter, not the root diameter. This has the
benefit of keeping the outside diameter stable when e.g. adjusting the
clearance. And setting the outside diameter directly could result in an
invalid shape when chaning the numnber of teeth.
The default head value of "-0.4" is choosen to match the invernal gear
profile from the PartDewign WB.
2021-09-29 10:14:26 +02:00