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!
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.
Advantages of this method:
Disadvantages of this method:
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.