Having trouble with the flatten command

I use the flatten command a lot in Autocad and am very impressed with the speed it flattens in Bricscad, but it appears to explode my blocks when it flattens and this is a real pain, are there any fixes available.

Comments

  • Woow, so it does! And explodes hatching and loses dim associativity. Must be a new bug.

    It leaves some of the blocks alone, notably those which include attributes, text and solids.

    That's a bad one - have you submitted a support request?

  • If you check the old implementation , FLATTEN only modified entities where this was possible with an equivalent of "setting elevation to 0". So for most entities and conditions the command did nothing. The new implementation is way more powerful, but if straightforward projection doesn't work, currently its only alternative is to explode before projection. For some entities FLATTEN does nothing yet, such as text entities. So yes it can be improved.

  • I had always assumed it was just a more obvious way to achieve what could have been done using Change to quickly reduce a 3d drawing to make it 2d, but without destroying the integrity of things which might be more important alive than dead. They would have to be manually exploded to make sure that's what you really wanted. Nothing seemed able to touch 3d faces.

    Lately I had been using it to fix lines which occasionally would not chamfer because for some reason they decided they were not on the same plane any more (all my work is 2d).

    I am very glad to have this warning before I shredded any of my drawings, it has very little application for me in this form. I will have to remember not to use it.

  • John, while we did not anticipate the use of the command to indiscriminately flatten everything just to make sure it's 2d with z=0, we can make sure that no entities are exploded unnecessarily and if they are, that the user is notified.

  • I use this quick-and-dirty lisp:

    (defun C:zero ( )
    (setq #ss (ssget))
    (command "_.move" #ss "" '(0 0 1e99) ""
    "_.move" "_p" "" '(0 0 -1e99) "")
    (princ)
    )

    It's usually ok. Doesn't handle anything inside blocks. But if something already has substantial Z coord someplace, then whoh! it goes into orbit.

  • Alexander, it seems to me there will always be entities which cannot be flattened at least without losing more than you might want.

    Apart from correcting the apparent Z-coord bug in my dwgs, I only use it for modifying foreign files for my use. I don't know initially what blocks etc are in them.

    A warning which stopped the command because it came to one of those entities would not be very helpful, a list of objects passed over might appear like a stock market ticker-tape. An accidental "Yes" could still be disastrous.

    A user would normally want the option of manually modifying blocks containing 3d entities (or Z not = 0).

    At present Flatten assumes too much and even explodes some blocks which don't contain anything 3d.

    If a block does contain objects with elevation other than 0, does it reduce them after exploding or does it require a second pass and perhaps multiple passes for nested blocks?

    A fairly limited use command, I'm not sure there was great scope for improvement and I don't know how Acad implements it.

  • I have a third party lisp routine that runs beautifully in Autocad, I am wondering if it will work in Bricscad. I may give it a go. Thanks for all the feedback everyone.

  • I loaded the Flatten lisp and it had the same problem as the original flatten command (exploded all my blocks).Not sure why it does not explode them in Autocad though, but I am a bit of a computer pleb.  It looks like I will flatten all my jobs in Autocad until I hear anything.

This discussion has been closed.