All Projects

IDProjectCategoryTask TypeSeveritySummaryStatusOpened by
 803 QCAD BugtrackerQCAD (main)Bug ReportLow Pan and Zoom with touch pad are hard to use (wrong buff ...ClosedMatthias Melcher Task Description

V 3.0.9 and earlier.

How to reproduce:
Go into App Preferences, in Graphics View→Navigation, enable pan gesture. Now add any drawing and pan around for ten seconds quickly, not taking the fingers off the mouse/touch pad. Take the fingers off the pad now.

What goes wrong:
QCad will pan around the drawing for another 30 seconds or so, dutifully executing all the buffered mouse moves.

Suggested solution:
Qt buffers more mouse pan-moves than QCad can handle. QCad executes every move in the buffer, making the pan feature close to unusable. The zoom function has the same bug, but it much less pronounced.

This is easily solved: when receiving a pan event (two finger scroll), just check if there are more events in the queue. If there are, accumulate the effect, but don’t draw yet. As soon as the buffer is empty, kick off the redraw. The result is a *much* more fluent and responsive user interface.

Please fix soon. This wonderful feature makes life so easy, but currently it is unusable. Thanks. Matthias.

 804 QCAD BugtrackerQCAD (main)Bug ReportLow "Color by Layer" uses wrong Layer for Blocks ClosedMatthias Melcher Task Description

Not sure whether this is intentional, but IMHO it is not logical and wrong:

When loading a block that has a drawing set to “color by layer” into any layer but “0”, it will still always show the color of the “0” layer.

However, it should show the color of the layer that this Block is in (this is likely true for all the other attributes).

805QCAD BugtrackerQCAD (main)Feature RequestLowCreate tool radius compensation / tool path generationAssignedMatthias Melcher Task Description

This is how I would implement this:

This would be a modification tool. Parts are selected, a toolpath is generated, and a dialog pops up to allow putting the tool path into an existing layer, a new layer, or replace all drawings in an existing layer.

This is how the toolpath is generated:

We iterate through all elements and explode everything but text into line segments. Then we connect the line segments into chains wherever the line endpoints are less than some tolerance away from each other. The chains can be very chaotic, but at least we have separate entities for now.

For every chain, we need to find the largest complete loop. A good drawing would only contain non-overlapping loops, but we can’t expect that. Everything that is not on this loop can not be defined as a part or as a hole, so we will merely create a tool path segment that is equivalent to the line segment. Every segment that *IS* on a loop is either an outside edge (part outline), or an inside edge (hole outline), (or overlapping, in which case it is neither, and we have an operator problem).

In a perfect world, we need to find exactly which shape is inside which other shape, and then create alternating tool offsets from the outmost loop (part edge) to the second outmost (hole), to the next (part) etc. .

In a simplified world, we can used the bounding box of the loop instead. This works OK for rectangular shapes, but a circle next to an “L” shape could be seen as inside the L’s bounding box, hence inside the L, wrongly accused of being a hole, not a part.

Now all that is left to do is to create a new loop, offset by the tool radius. Oh, and since we have the connections from line segment to line segment in the correct order already, we can use the opportunity to order all cutting loops from inner to outer, or from small to large, and order non-loop edges by travel distance.

The new drawing in the new layer can now be exported without further hassle to create a nice laser cut file.

PS: of course, a user could create multiple layers for marking, cutting, enraging, etc. . Additional Layer attributes for cutting speed and laser power (and a few more) would be needed.

Showing tasks 1 - 3 of 3 Page 1 of 1

Available keyboard shortcuts


Task Details

Task Editing