Author Topic: Action to a point  (Read 1704 times)

Dr PR

  • Hero Member
  • *****
  • Posts: 5472
Action to a point
« on: August 10, 2010, 04:15:47 PM »
One feature I would like to see is a modification of the rotate and sweep commands to be able to rotate an object through an arbitrary angle to align with a point. This would eliminate having to determine the desired angle of rotation/sweep before hand and then enter it into the rotate/sweep command dialog.

A significant source of error is having to guess what rotation/sweep angles to use when trying to align the rotation/sweep with existing elements in the drawing. The Dimension Angle function returns an angle rounded off to whatever degree of precision is set in the "Dimension Text" dialog. You can set this to 15, but then all angle dimension are ridiculously large. Then you have to correctly type in up to 19 characters in the rotation/sweep dialog and hope you guess the +/- rotation correctly.

It would be much better if the program calculated the rotation automatically to the highest resolution possible. After all, this is the sort of thing computers are supposed to do. It would work like this:

Rotate

1. Select an object.
2. Set a handle at the center of rotation.
3. Select an axis of rotation. *
4. Set a reference point on the object (gravity snap). This marks the original position.
5. Move the cursor to any target point in the drawing and click (point and left click, point and right click gravity snap to an existing point, use any other cursor movement command, etc).
6. The selected object rotates about the axis of rotation so the center of rotation, the reference point and the target point lie in the same plane.

* The existing rotation axis selections in the rotate command should be adequate.

Sweep

This would work similar to the rotate function described above, sweeping through the arbitrary angle.

1. Select the object to be swept.
2. Set the center of rotation.
3. Select the axis.
4. Set the number of copies.
5. Set a reference point on the object.
6. Set a target point.

The reference point on the object will be swept through an arbitrary angle about the chosen axis until it lies in the same plane as the center of rotation and target point.

****

For example, imagine that you have a plane that is rotated arbitrarily with respect to the X, Y and Z axes - and you don't know the angles. You want to place an object, such as a cube, flat against the plane. Here is how it would work:

1. Select the cube at a corner, press M to move it, then drag and gravity snap to a point on the plane.

One corner of the cube is on the plane.

2. Now rotate the cube around the corner that is on the plane by selecting another corner (reference point) and gravity snap to another point on the plane (target point).

Two corners of the cube are on the plane.

3. Draw a line between the two corners of the cube that lie in the plane. Use this as the axis of rotation.
4. Rotate the cube again, centered on one of the points in the plane, using the line as the rotation axis. Select another corner of the cube as reference, and snap to a corner of the plane as the target.

Four corners (one side) of the cube lie in the plane with the highest precision possible. No angles have been calculated, mistyped, corrected, rotation corrected, etc. Nothing has been re-sized, scaled, stretched, warped or otherwise distorted. No new working planes have been created. No extra BS.

****

The sweep function could be used to do things like create a curved pipe/railing from an existing pipe/railing end through an arbitrary angle until the end of the curved part was parallel to an arbitrary plane.

1. Create the pipe/railing end cross section surface.
2. Set a handle at the center of rotation with the desired radius for the curve.
3. Make a copy of the arbitrary plane and move it so a point on the plane lies at the center of rotation.
4. Select the pipe/railing end surface.
5. Execute the Sweep command an set the center of rotation.
6. Select the rotation axis.
7. Set the number of copies.
8. Set a reference point on the end surface.
9. Set a target point on the plane.

The end surface will be swept through the arbitrary angle until the reference point on the final copy lies in the same plane as the center of rotation and the target point on the plane.
DesignCAD user since 1987

Dr PR

  • Hero Member
  • *****
  • Posts: 5472
Re: Action to a point
« Reply #1 on: November 16, 2010, 05:12:44 PM »
Here is an example of what I mean by "action to a point." See the attached image.

I have two cylinders (red) with their axes crossing at an angle. I want to sweep a plane (highlighted) around the point where the two blue lines intersect to create a curved solid to fill the gap between the two cylinders. Ideally it would work this way:

1. Select the plane.
2. Set a handle at the intersection of the two blue lines.
3. Set a start point at the center of the plane.
4. Set an end point at the center of the end of the opposite cylinder.

The program would then calculate the sweep angle and complete the sweep operation.
DesignCAD user since 1987

JJG

  • Hero Member
  • *****
  • Posts: 719
Re: Action to a point
« Reply #2 on: November 17, 2010, 12:25:00 PM »
OK, you think so, for 3D mode, something like "fillet" (Edit / Trim / Extend / Fillet) in 2D mode, but for solid ?

Something like this exists effectively in other "big" 3D parametric softwares, like Solidworks etc ...

Dr PR

  • Hero Member
  • *****
  • Posts: 5472
Re: Action to a point
« Reply #3 on: November 17, 2010, 03:10:13 PM »
JJG,

In a perfect world ... the program would read our minds and just create the drawing for us. But in the real world we have to do most of the work.

In the example I have shown I have already set up the geometry and created the cylinders with ends in the correct positions. All I am asking is that the Sweep function calculate the angle based upon the center, start and end points. This is trivial.

There are other commands that require you to enter an angle, and these could work the same way AFTER you have set up the geometry.

The fillet command is different. You define the radius between two lines and the program calculates the end points of the lines, the center of the arc, and completes the fillet. It is essentially the same as creating a circle tangent to two lines and then truncating the lines.

Doing this with solids is very problematic. In the example shown, the two cylinders are the same diameter, and the center lines intersect. What if you try to fillet between a cylinder and a triangular solid? It would be great if the program could do it, but I wouldn't want to have to write the code (work out the geometry). There are a lot more important things for the programmers to work on.

In a similar way, it is very difficult to create a box with rounded corners and edges if you want different radii on different edges, or some edges to be sharp 90 degree joins. I have done these things manually, but it can be quite a brain twister to work out the geometry (I love it - it's fun!). Again, I wouldn't want to be the one to write the code.
DesignCAD user since 1987

Rob S

  • Hero Member
  • *****
  • Posts: 4381
    • Construction Estimating Program for General Contractors
Re: Action to a point
« Reply #4 on: November 17, 2010, 03:46:28 PM »

If nothing else, I am very much in favor of the rotate by points option, that would be very useful to me!!

I have often been asked to "sit on it, and rotate", and it would be nice to be able to perform this with DCAD precision.

Seriously, a great idea.
User since Pro-design

Bob P

  • Hero Member
  • *****
  • Posts: 1166
    • Era Replica Automobiles
Re: Action to a point
« Reply #5 on: November 18, 2010, 03:49:35 AM »
The basic problem (really basic...) is that DC cannot represent any solid in anything but grids, multi-lines and planes.  The entities might be connected into something that looks like a cylinder, but it's really just a complex rectangular-based solid.  As such, filleting is extremely problematic.  That's where feature-based programs have an advantage.  Processes can go back in the history to change the way the original entities (and intentions) interact.

Dr PR

  • Hero Member
  • *****
  • Posts: 5472
Re: Action to a point
« Reply #6 on: November 18, 2010, 11:34:33 AM »
Bob P,

I think DesignCAD actually models surfaces as triangles, but only displays them as rectangles. Any time you generate a surface intersection line between a plane and a curved grid you get "intermediate" points on the intersect line between where it intersects the edges of the rectangles. These lines ALWAYS fall on the hypotenuse of a triangle created from three of the four corners of the rectangle.

This is how DesignCAD creates curved surfaces that should be impossible with rectangles. It actually used triangles.

Of course, this doesn't disagree with what you have said. Curved surfaces are modeled with planar facets, be they rectangles or triangles. Once drawn they cannot be changed dynamically as can be done in "parametric" programs.

However, it is possible to create a fillet between surfaces with different numbers of facets at the ends. I have done it manually many times, and it is a real chore! It is much easier if you create all rounded edges with the same number of facets. The surface connect function sometimes does a perfect job of creating fillets the first time (but don't count on it!).
DesignCAD user since 1987

Dempsey

  • Hero Member
  • *****
  • Posts: 1899
  • Intel i7-960, 12GB, NVidiaGTX570, Win7x64, DC26.2
    • World of van Vliet
Re: Action to a point
« Reply #7 on: January 26, 2011, 07:26:41 PM »
Feature Request F-206.
Dempsey