CompuServe Thread

#DXF Angular Dimensions

3 messages in this thread
#21627From: Steve LevyNov 23, 1991 2:01 PM
I'm having great difficulty deciphering the DXF representation of Angular Dimensions (regular, not 3 pt.). The control points in the *D block seem to be in no fixed order and the extension points in the Insert block also seem to be interchangable. The location of the ARC (which quadrant) seems to be based on the point selected for such (16,26,36), but this is sensitive to the exact calculation of the centerpoint and angle. Does anyone out there have some general (or specific) advice or a reference for this problem? Neither the official ACAD reference manual nor the ACAD Database Book have much to say, in detail. I've tried many convolutions, but they all seem to break down in some special case. Thanks for the help, in advance.
#21872From: Tony Tanzillo [LISP TM]Nov 25, 1991 11:30 AM
Steven – The control points for angular dimensions do not have any fixed order to them, because the user can specify the two angle vectors in any order. This should not be a problem, since you can compute the included angle between the two vectors regardless of what order they're supplied in. If I'm not reading you right, then please explain the problem in more detail, and we'll take it from there. -TonyT.
#21883From: Steve LevyNov 25, 1991 12:34 PM
Thanks for the assist, Tony. There seem to be a number of problems with the "simple" approach. First, lets distinguish between the block def. and the insert record. For angular dim's there are 4 points in the block def. If the 1st two points (10,20,30) represent one line and the 2nd two points, the other line, the intersection of these lines defines the center of the angular dim: Are the points grouped in this way? In some cases, I've found that all 4 points have the same value, in some cases 2 of the points have the same value. If there were a definite order, I could eliminate some comparisons. In the insert record, the 4 points which define the extension lines seem also to be unordered: e.g. Sometimes (10,20) is the inner radius, sometimes (15,25). (Is the order of the points in the block def related to the order in the insert record?) Also, the points of each vector can be equal (when the length of the extension line=0), so the angles in this case would need to be calculated from the block def. – but (as stated above) sometimes these points converge, as well. Finally, computing the location of the arc seems to depend on the location selected by the user, and this may fall onto (or very near) one of the extension lines. In the latter case, determining the location depends on the particular FP routine used.(?) I realize that ACAD reads its own DXF perfectly, so there must be a method to this madness, but I keep coming up with exceptions that defeat my algorithm. Which points would you use for the center?, for the angles? What boundary <fuzz> needs to be applied to the arc location? Thanks.