Text in Boundary Line

Scott Zang (szang) asked: I am searching for a better way to place text in a boundary line that may bend around previuos text entities. This occures if you want to label a boundary line ,say a lithologic break line in a description column of a log, with the depth and elevation within the same column. Because the boundary line may shift down to wrap around a previous long text entity, I do not know the depth at which the label needs to be plotted. See the top half of the picture below to get an idea of what I am doing.

 

I am currently accomplishing this by assembling a single text block that contains my depth and elevation text (right justified) and my description text (left justified). I then specify the background color for the text as white and set it's print order to be higher than the print order for the boundary line. Finally, I offset the text block up 0.04" (half of the text hieght). This causes the white background of the text block to "block out" the required portion of the boundary line since it prints on top of the boundary line.

This works great when the previous text entity has not caused the boundary line to bend down around the text entity. It also works OK when the boundary line has been bent down(note the lower entry in the picture) as the white background still blocks out the required portion of the boundary line (just barely). However, the depth and elevation text is not centetred on the boundary line because the previous text entity allready theoretically occupies that space. If there was a way of specifying the bottom offset of the boundary line from the text entity I could leave the extra space required for it to center but I do not know how to do this.

The second problem with this approach is that if the form is output to dxf for incorporation into a CAD drawing, the white background is lost and the boundary line goes directly through the elevation and depth text.

Thus, I am looking for a better way to place text in a boundary line that can accomodate the boundary line bending around a previous entry and will plot correctly when exported to dxf.

Any ideas?

ANSWER: Scott, the second issue (export to DXF loses the white "knockout" behind the elevation text) is a known issue. It is caused by the very different ways that AutoCAD and gINT specify a knockout. This difference is already in a list of issues to be addressed in future revisions of gINT.

I will do some research to see if there is a gINT Data Item that will let you specify the location of the boundary line when it breaks -- you would then be able to do a CALC to move the elevation text up 0.04" from that location for each depth, rather than keying off the position of the text.

If someone else has a good idea on this, please weigh in!

Parents
  • Scott Zang replied with a possible solution to his own issue: Just updating this post on a partial solution that I have developed. Though this soultion adresses the two major concerns with the previous approach, it introduces two new problems that I am hoping somebody can shed some light on.

    The solution involves not using the preprogramed boundary lines in the text vs depth entity and creating a boundary line using a callout and a border line. See the following picture.

    As in the previous example, the text is assembled as a single block with the depth and elevation text right justified and the description left justified. The depth and elevation text is separated from the description with a cairrage return <<CR>>. This text block is offset up 0.04" (half the text height) to place the depth and elevation text centered on where the boundary line would normaly go. Wrap margins are set to 0.05" to give room for the boundary lines to bend down.

    A callout is used on the left side pointing from the text to the left edge of the column. This will be straight if the text is not bumped down but will break if the text is bumped down. This is shown in red in the picture but would be made black in the final version. The surpress output condition is set up to not print the callout for depth=0.

    A top border line is used to create the horizontal portion of the boundary line. It is offset 0.05" from the left edge of the column to leave room for the callout and and 1" from the right edge of the column to leave room for the depth and elevation text. It is offset 0.04" down (half the text height) so it will match up with the call out and be in the proper position (recall the text block was offset 0.04" up). It is shown in green in the picture but would be made black in the final version. The output condition is set up to only print this line for places wher the strata changes and not print the line at depth = 0

    This solves the problem of the text not being centered on the line when the text gets bumped down that was inherent with using the block out method.

    It also solves the problem with the line going through the text when exported to dxf because the dxf does not recognize the background fill covering up the line.

    It creates two new problems:

    1) The boundary line always stops a fixed distance from the right edge of the column. It was set at 1" in the example so that the longest anticipated depth and elevation text string would fit. If the string is significantly shorter than the longest possible string there is a lot of white space between the end of the boundary line and the begininng of the text. The offset field for the border line only accepts numeric values so I cannot control that offset using a text length formula.

    2) The right edge of the boundary line (after the depth and elevation text) is not created so it does not bend back up after being bent down. I can place a discrete graphic (shown as short blue ticks on the right edge of the column in the example) at the depth that the line would bend up to, but can not figure out a way to create the bent portion. Though these tick marks show where the boundary line would connect to and work well for text that has not been bumped down, they could become confusing when multiple bumps are occuring. The solution would be another callout, but I can only use one callout per entity - and another entity would know nothing about the first so would not know it has to bend down. Using a diagonal discrete graphic with the height controled by the distance between the actual depth and the as plotted depth would be another way, but I have not found a way to access the as plotted depth and the discrete graphic height field only accepts numeric values.

    So any ideas? The block out solution is still probably best for forms that are not printed to dxf. This solution is probably best for forms that are printed to dxf.

    ANSWER: Scott, there is another property of the text vs. depth entity that may be used to do this. It is the Second Text Spec. You can also define the properties of the Boundary line to not break on the right, and only extend partway across the column, but if you want to continue using the Callout, the Second Text Spec might look something like:

     

    There is an FAQ in Help titled How Do I Keep Two Text vs Depth Entities From Printing on Top of Each Other? (faqs) that covers this topic.

    Pat Cummings



  • Scott replied:  I am aware of the second text spec and have tried it. It provides the same thing as assembling the depth/elevation text and the description text into one large block so I stuck with the one large block approach. It does not allow the depth/elevation text to be bumped up further to center in the boundary line because gINT believes there is already text there from the previous description. Nor does it allow the specification of a second callout line (the callout is associated with the first text only) The conclusion is that the line has to move down, not the text move up. That is why I used the text border and callout method.

    Further, using a boundary line that is not bent at the right and stops before the edge of the column is not possible because the "BL Offset Right" parameter will not accept a negative value, nor will it accept a formula so that I can control the length of the line based on the text length.

    Thus I am still open to any ideas that anyone might have.



  • Here is another partial soltuion.  It is not a full answer but maybe it will inspire someone who can address all the issues with a simple elegant solution.

    1. As before, A text block containing the description text and the depth text is assembled.  The description text is left justified and the depth text is right justified on a separate line above the description.
    2. The text block is offset 0.04” up (half the text height) to center the depth text on the previous boundary line.
    3. The entity is positioned 0.3” left of the actual left edge of the desired location so that it is actually anchored in the strata column just to the left of the description column on the log.  In the example below the left edge of the column is positioned at X=4.0 so the entity is anchored at X=3.7
    4. The Column width is set to the actual width of the column minus 0.1” to allow some space at the left edge for boundary lines to bend down.  Since the boundary line width is controlled by this number, and the entity is offset 0.3 to the left, the boundary line will actually terminate 0.4” before the right edge of the column.  This leaves enough room for the right justified depth text assembled in step 1 to print without the boundary line going through it.
    5. To get the description text to start at the correct location, use the output override X option and specify the actual starting point 0.1” inside the actual column.  In the example illustrated below, the left edge of the column is at X=4.0 so the output override is set to 4.1”.  To keep the boundary lines from offsetting as well, check the box on the wrap tab for “Do not adjust boundary line for output X”
    6. The left side of the boudary line is allowed to break so it can go around long descriptions.  The break offset is set to 0.4” to place the break end at the actual description start point and the break percentage is set to 80% (80% x 0.4” = 0.32”) so that the break starts just inside the actual column.

     

     

    Advantages of this method:

    • The boundary line properties are used to create the boundary line rather assembling it from pieces.  This allows the easy use of the boundary line type properties and style properties.
    • A white background is not used to block out a portion of the boundary line, thus this will work for forms output to DXF.  The white background also does not blockout other entities (such as a draft watermark) that it was not intended to.

    Disadvantages of this method:

    • The depth text still does not center on the boundary line if the boundary line is bumped down (it is close).  This is because the entity detects text above and will not offset the description up to center it on the boundary line.  It does center properly if the line above is not bumped down.
    • The room allowed on the right side is limited by the amount you can offset the entire entity to the left.  Thus placing long text strings in the centered  boundary line is out.
    • This only works if there is a column to the left of the description that will have the same boundary lines in it (ie a strata column) since I am essentially hiding the left edge of the boundary line in the adjacent  column.  They still print, but you do not see them. (see blue line in example below)
    • The boundary line does not bend back up on the right side. But, since this method does not use the callout properties you could probably construct one if desired.  In the example, the right edge of the description column is the last column on the form so it was not necessary to do this.

    If any body has a better method thto center text in a boundary and break the boudary line only enough to allow the text to print so that it can be output to DXF I am still looking for a full solution.

Reply
  • Here is another partial soltuion.  It is not a full answer but maybe it will inspire someone who can address all the issues with a simple elegant solution.

    1. As before, A text block containing the description text and the depth text is assembled.  The description text is left justified and the depth text is right justified on a separate line above the description.
    2. The text block is offset 0.04” up (half the text height) to center the depth text on the previous boundary line.
    3. The entity is positioned 0.3” left of the actual left edge of the desired location so that it is actually anchored in the strata column just to the left of the description column on the log.  In the example below the left edge of the column is positioned at X=4.0 so the entity is anchored at X=3.7
    4. The Column width is set to the actual width of the column minus 0.1” to allow some space at the left edge for boundary lines to bend down.  Since the boundary line width is controlled by this number, and the entity is offset 0.3 to the left, the boundary line will actually terminate 0.4” before the right edge of the column.  This leaves enough room for the right justified depth text assembled in step 1 to print without the boundary line going through it.
    5. To get the description text to start at the correct location, use the output override X option and specify the actual starting point 0.1” inside the actual column.  In the example illustrated below, the left edge of the column is at X=4.0 so the output override is set to 4.1”.  To keep the boundary lines from offsetting as well, check the box on the wrap tab for “Do not adjust boundary line for output X”
    6. The left side of the boudary line is allowed to break so it can go around long descriptions.  The break offset is set to 0.4” to place the break end at the actual description start point and the break percentage is set to 80% (80% x 0.4” = 0.32”) so that the break starts just inside the actual column.

     

     

    Advantages of this method:

    • The boundary line properties are used to create the boundary line rather assembling it from pieces.  This allows the easy use of the boundary line type properties and style properties.
    • A white background is not used to block out a portion of the boundary line, thus this will work for forms output to DXF.  The white background also does not blockout other entities (such as a draft watermark) that it was not intended to.

    Disadvantages of this method:

    • The depth text still does not center on the boundary line if the boundary line is bumped down (it is close).  This is because the entity detects text above and will not offset the description up to center it on the boundary line.  It does center properly if the line above is not bumped down.
    • The room allowed on the right side is limited by the amount you can offset the entire entity to the left.  Thus placing long text strings in the centered  boundary line is out.
    • This only works if there is a column to the left of the description that will have the same boundary lines in it (ie a strata column) since I am essentially hiding the left edge of the boundary line in the adjacent  column.  They still print, but you do not see them. (see blue line in example below)
    • The boundary line does not bend back up on the right side. But, since this method does not use the callout properties you could probably construct one if desired.  In the example, the right edge of the description column is the last column on the form so it was not necessary to do this.

    If any body has a better method thto center text in a boundary and break the boudary line only enough to allow the text to print so that it can be output to DXF I am still looking for a full solution.

Children
No Data