Commit Graph

219 Commits (23a4ce36971f5b0989bcca1ba357cf427504add1)

Author SHA1 Message Date
Jonathan Westhues 23a4ce3697 Auto-show the text window when stepping a dimension, in addition to
auto-showing when a solve fails. And accept expressions, not just
numbers, for that new dimension value.

[git-p4: depot-paths = "//depot/solvespace/": change = 1877]
2008-09-17 02:13:37 -08:00
Jonathan Westhues 69cf8d6484 Change fudging when I select edges to generate a section from the
shell. That seems less prone generating stray lines, though it does
sometimes generate gaps.

[git-p4: depot-paths = "//depot/solvespace/": change = 1876]
2008-09-08 21:19:54 -08:00
Jonathan Westhues 816a1ee8b4 Auto-remove point-on-line constraints when at-midpoint constraints
are added. There was already precedent for that, since I
auto-remove horiz/vert constraints when symmetry constraints are
added.

[git-p4: depot-paths = "//depot/solvespace/": change = 1875]
2008-09-06 13:36:31 -08:00
Jonathan Westhues 92f55dd195 Speed up the inconsistent constraint detection; there's no reason
not to solve by substitution before rank testing. And report the
unsatisfied constraints when we don't converge.

[git-p4: depot-paths = "//depot/solvespace/": change = 1874]
2008-09-05 03:25:53 -08:00
Jonathan Westhues 33654c7ce7 Fix the mystery bug where the display disappears. That would happen
when I get a mouse moved event with the middle button down before I
got a middle button down event; orig.proj{Right,Up} were invalid.

[git-p4: depot-paths = "//depot/solvespace/": change = 1873]
2008-08-23 17:32:25 -08:00
Jonathan Westhues 51ca96b821 Hide the sweep and helical sweep for now. Exact surfaces feel
more and more necessary, and that complicates those.

[git-p4: depot-paths = "//depot/solvespace/": change = 1872]
2008-08-21 20:24:51 -08:00
Jonathan Westhues 25aa1826ee Change wording for not licensed message.
[git-p4: depot-paths = "//depot/solvespace/": change = 1871]
2008-08-21 01:47:03 -08:00
Jonathan Westhues fb33edcade Comment out the error when I generate a leaky mesh.
[git-p4: depot-paths = "//depot/solvespace/": change = 1870]
2008-08-15 00:37:32 -08:00
Jonathan Westhues fe77e7cf7e Don't enable GL_POLYGON_SMOOTH. That looks awful on my other
laptop, for some graphics card reason.

[git-p4: depot-paths = "//depot/solvespace/": change = 1869]
2008-08-14 23:37:19 -08:00
Jonathan Westhues 4bfa48fd9f Change default chord tolerance to 1, not 2.
[git-p4: depot-paths = "//depot/solvespace/": change = 1868]
2008-08-14 21:08:02 -08:00
Jonathan Westhues 285f990ad6 Make the mousewheel work in whichever window the mouser is over,
and not whichever is the foreground window.

[git-p4: depot-paths = "//depot/solvespace/": change = 1867]
2008-08-14 20:55:03 -08:00
Jonathan Westhues 962cb1af4a Add cutter radius compensation. That's a bolt on thing at the end;
just applies an offset to the DXF before exporting. Useful enough
to be worth the ugliness, though.

This is the stupid routines from SketchFlat, slightly reworked.

[git-p4: depot-paths = "//depot/solvespace/": change = 1866]
2008-08-14 00:28:25 -08:00
Jonathan Westhues 32372aee7a Update reference manual for SolveSpace.
[git-p4: depot-paths = "//depot/solvespace/": change = 1865]
2008-08-11 03:57:46 -08:00
Jonathan Westhues 96f5663d6e Add a configuration option to hide the back faces; that gets rid of
stray red pixels sometimes, if the mesh is leaky or the graphics
card isn't perfect.

[git-p4: depot-paths = "//depot/solvespace/": change = 1864]
2008-08-11 02:56:08 -08:00
Jonathan Westhues 2a420e8400 Infer the correct supplementary angle from the sketch. Equal angle
applies to whichever is closer to original position, and angle
constraint, if the two vectors are lines that share an endpoint,
applies to vectors out from that shared point.

[git-p4: depot-paths = "//depot/solvespace/": change = 1863]
2008-02-26 04:48:31 -08:00
Jonathan Westhues 9119393108 Add some descriptions of the tutorials to SolveSpace's reference
manual.

[git-p4: depot-paths = "//depot/solvespace/": change = 1862]
2008-02-24 02:36:32 -08:00
Jonathan Westhues bd0e97bad0 Now I can suppress an imported part; so the entities still show up,
but the mesh doesn't get combined. That effectively hides it, good
for looking inside and such.

[git-p4: depot-paths = "//depot/solvespace/": change = 1860]
2008-02-15 03:35:15 -08:00
Jonathan Westhues 1c66dca5ba Assemble polygons from imported groups too; so that lets you draw a
section, import it, and extrude it.

[git-p4: depot-paths = "//depot/solvespace/": change = 1859]
2008-02-13 08:15:33 -08:00
Jonathan Westhues dae5cdf9b8 Change name to SolveSpace everywhere.
[git-p4: depot-paths = "//depot/solvespace/": change = 1858]
2008-02-13 08:13:08 -08:00
Jonathan Westhues c42033d123 Add a configuration item to specify the maximum number of piecewise
linear segments to generate, irrespective of the chord tolerance.
That used to be hard-coded, and it needs to be small enough to
avoid lags while working interactively, but I also need to export
fine geometry.

[git-p4: depot-paths = "//depot/solvespace/": change = 1857]
2008-02-12 05:00:26 -08:00
Jonathan Westhues ea7ffd4b2a Scroll the textwindow when the mousewheel moves.
[git-p4: depot-paths = "//depot/solvespace/": change = 1856]
2008-02-10 06:06:54 -08:00
Jonathan Westhues ddf2b30b98 Remove some of the oops() calls that tend to blow because of issues
in the numerical code.

And clean some other stuff, in particular simplifying whenever I
have to take the maximum (or minimum) of three quantities.

[git-p4: depot-paths = "//depot/solvespace/": change = 1855]
2008-02-10 05:34:32 -08:00
Jonathan Westhues 22b78e4427 Assemble the group polygon ourselves when exporting a DXF; that
lets us export open curves, if the user drew them that way.

Also increase the limits on how many pwls we will generate for a
single curve.

[git-p4: depot-paths = "//depot/solvespace/": change = 1854]
2008-02-10 04:43:48 -08:00
Jonathan Westhues 0c10efdab6 Add a simple license key: I take the CRC of the license info, plus
some magic numbers. This would be trivial to break, but still more
difficult than patching the binary to skip the check...

[git-p4: depot-paths = "//depot/solvespace/": change = 1853]
2008-02-09 05:52:01 -08:00
Jonathan Westhues 5a2803617b Previous speedup for regenerating vertex-to-vertex mesh was broken;
it did nothing when GenerateAll got called with an explicit range
(vs. with no args, to run on the dirty groups), so the emphasized
edges ended up out of date. I think this is better.

Also check in latest updates to manual.

[git-p4: depot-paths = "//depot/solvespace/": change = 1852]
2008-02-07 09:44:27 -08:00
Jonathan Westhues a58680201f Oops, didn't clear the hover when auto-deleting horiz/vert
constraints when adding symmetric constraints. So that could blow
up and trigger an oops.

[git-p4: depot-paths = "//depot/solvespace/": change = 1851]
2008-02-07 09:17:09 -08:00
Jonathan Westhues 04141aa59d Go back to randomizing the faces before adding to the BSP, rather
than sorting by area. I had hoped that would help with normal
accuracy, but I don't think it helped much, and it sometimes became
very slow.

[git-p4: depot-paths = "//depot/solvespace/": change = 1850]
2008-02-07 01:57:59 -08:00
Jonathan Westhues 7b7d2f92e9 Add code to evaluate the volume of a mesh, thanks to the divergence
theorem; it's evaluated as a surface integral over each triangle.

And don't regenerate the emphasized edges unless we have to;
specifically, don't do it when the only dirty group is the
drawing group.

[git-p4: depot-paths = "//depot/solvespace/": change = 1849]
2008-02-07 01:53:52 -08:00
Jonathan Westhues 115dbce61b Oops, wasn't closing the PNG file after exporting to it.
[git-p4: depot-paths = "//depot/solvespace/": change = 1848]
2008-07-20 17:34:09 -08:00
Jonathan Westhues 304c8f8be9 Add equal-angle constraints. These are implemented by brute force,
as the difference between the cosines of the two angles. All of the
angle stuff generates huge expressions (Expr *), but doesn't seem
noticeably slow.

[git-p4: depot-paths = "//depot/solvespace/": change = 1847]
2008-07-20 04:24:43 -08:00
Jonathan Westhues 8fe910da4d Add feature to trace a point; so I can show the path that a
linkage traces out, and export the coordinates.

[git-p4: depot-paths = "//depot/solvespace/": change = 1846]
2008-07-20 03:27:22 -08:00
Jonathan Westhues d2c4d2cdb7 Swap meaning of middle and right mouse buttons (now center means
drag, right means pan), and extend reference manual.

[git-p4: depot-paths = "//depot/solvespace/": change = 1845]
2008-07-18 05:31:22 -08:00
Jonathan Westhues a783f14eff Add an icon file (ugly, but at least it's not the default anymore).
And add the manifest that gets us visual styles on the controls
under Win32.

[git-p4: depot-paths = "//depot/solvespace/": change = 1844]
2008-07-18 01:50:52 -08:00
Jonathan Westhues 222007f3d8 Oops, make path relative routine was broken when the filenames
shared a prefix (/path/abc.slvs, /path/abcdef.slvs).

[git-p4: depot-paths = "//depot/solvespace/": change = 1843]
2008-07-16 21:29:10 -08:00
Jonathan Westhues 98b0f65cea But still draw the edges when the faces are coplanar, if the faces
are different colors.

[git-p4: depot-paths = "//depot/solvespace/": change = 1842]
2008-07-15 23:08:39 -08:00
Jonathan Westhues 3765175ec3 Don't emphasize edges between coincident plane faces, and check in
beginnings of reference manual.

[git-p4: depot-paths = "//depot/solvespace/": change = 1841]
2008-07-15 21:45:11 -08:00
Jonathan Westhues bc2a9c11b3 Better error messages when creating groups, too.
[git-p4: depot-paths = "//depot/solvespace/": change = 1840]
2008-07-13 21:20:55 -08:00
Jonathan Westhues 90133b6b5d Add better error messages when creating constraints, and add a link
when creating requests to cancel operation (works same as Esc).

[git-p4: depot-paths = "//depot/solvespace/": change = 1839]
2008-07-13 20:29:43 -08:00
Jonathan Westhues 4afc881bf2 Add a command to create an arc that's tangent to two line segments.
This was possible before (by drawing everything explicitly), but
now it's easy.

[git-p4: depot-paths = "//depot/solvespace/": change = 1838]
2008-07-13 18:45:11 -08:00
Jonathan Westhues f70bbb3e7f This BSP split and simplify thing is stupid, but a hard-coded limit
on the number of pieces that we know how to reassemble is even
stupider. Now dynamically allocated.

[git-p4: depot-paths = "//depot/solvespace/": change = 1837]
2008-07-13 04:58:52 -08:00
Jonathan Westhues 88fc69116f Add tangency constraints, for line segments against arcs or cubics.
These are just a convenience, since it would be possible to get the
same result by drawing a construction line.

[git-p4: depot-paths = "//depot/solvespace/": change = 1836]
2008-07-13 04:44:05 -08:00
Jonathan Westhues 36870360cb Little stuff: show polygon assembly errors only for draw-in-plane
groups, rename "drawing" groups to "sketch" groups, and keep
assembling even after finding an open curve.

[git-p4: depot-paths = "//depot/solvespace/": change = 1835]
2008-07-13 01:57:46 -08:00
Jonathan Westhues 6269d702fb Report the number of degrees of freedom for each group.
[git-p4: depot-paths = "//depot/solvespace/": change = 1834]
2008-07-09 23:42:35 -08:00
Jonathan Westhues cdeeb67d83 Oops, the ASCII codes for some characters I was using overlapped
with the VK codes for some keys that I wasn't. Ugly, but work
around that.

[git-p4: depot-paths = "//depot/solvespace/": change = 1833]
2008-07-09 23:26:41 -08:00
Jonathan Westhues 44795175ee A suggestion when we fail to converge or go singular.
[git-p4: depot-paths = "//depot/solvespace/": change = 1832]
2008-07-09 23:17:35 -08:00
Jonathan Westhues 7cf0deb9f4 Reassign the keyboard shortcuts so that the constraints don't all
start with Shift, since that's hard to type.

[git-p4: depot-paths = "//depot/solvespace/": change = 1831]
2008-07-09 23:06:07 -08:00
Jonathan Westhues 49b6e9a74d Remove the back button from the text window, since I never used it.
And fix a bug; wasn't asking the user whether to save before
abandoning file when a new file was opened recent.

[git-p4: depot-paths = "//depot/solvespace/": change = 1830]
2008-07-09 22:11:56 -08:00
Jonathan Westhues 7622534b2a Make the piecewise linear stuff for cubics and quadratics adaptive,
based on a chord tolerance. And rewrite the pwl circles to work
against a chord tolerance too (which they really were doing before,
but in funny units).

Also make "assemble" combine type do a union after interference
checking; was previously just copying, which meant that coplanar
faces could break subsequent operations.

And make right-clicking effectively toggle shift key, instead of
forcing it on; so you can pan or rotate with either right or middle
button.

[git-p4: depot-paths = "//depot/solvespace/": change = 1829]
2008-07-09 21:26:08 -08:00
Jonathan Westhues 6852b4134f Request a deeper z buffer and color depth. Doesn't seem like that
could hurt, but still make offsets work as if it's a 16 bit buffer,
since I don't seem to actually get 24 bits.

[git-p4: depot-paths = "//depot/solvespace/": change = 1828]
2008-07-08 22:41:42 -08:00
Jonathan Westhues dd23aa11a2 Make rotations default to 360/n degrees (uniform about a circle)
if no constraints set the rotation.

[git-p4: depot-paths = "//depot/solvespace/": change = 1827]
2008-07-08 22:13:49 -08:00