OK I tried to write a solution that would trim lines that pass through a symbol.
What I came up with is this.
In the routine you select the block and all the linework running through the symbol.
The routine creates a temporary block definition and uses the copyobject method to copy the block into the definition.
It creates a bounding circle around the symbol in the temp block definition.
Centered on the middle of the bounding box around the symbol and passing through the points of the bounding box.
It then copy one line at a time each of the lines passing through the symbol. Runs multiple intersect with methods on each. Saving each intersecting point as a parameter on the line. If the line only passes through the bounding circle once it adds its own end param inside the circle to the list of params.
It then sorts the list of param's and takes the max and min values converts them back into points and breaks the linework in the drawing (not the temp block)
It then deletes the line in the temp block and copyobjects another line into the block and repeats the process.
It doesn't work for minserts and it apparently doesn't line blocks without uniform x and y scale factors.
Try it out, at least it works for fairly uniform blocks I have tried it on.
Peter