Search code examples
blockdxf

Insert successively two dxf files as blocks does not work


I produced 2 dxf files named "EXPO CVX01.dxf" and "EXPO CVY01 TEST.dxf". Those files are the result of a transformation from a owner format to dxf format.

click here to download a zip with those files

I am using draftsight 2017 to insert those dxf files as blocks (using the menu item "insert a block").

When i insert the files separately (in different view each one), there is no problem : the drawing appears completely. But if i insert, in a same view, the first one "EXPO CVX01.dxf" and then the second one "EXPO CVY01 TEST.dxf"(in that specific order), the second does not appear completely, i can see only a part of it !

N.B. : to see this part, move the first inserted block before insert the second.

I do not know where is the problem : in my files or in the software?

Any help would be appreciated.


Solution

  • If you physically open EXPO CVX01.dxf (don't insert it) and list the contents of the drawing you will be presented with one element:

        BLOCK REFERENCE  Layer: "0"
                                Space: Model space
                       Handle = 37d
           Block Name: "GROUP320A0230"
                    at point, X=   0.0000  Y=   0.0000  Z=   0.0000
       X scale factor:    1.0000
       Y scale factor:    1.0000
       rotation angle:      0
       Z scale factor:    1.0000
      Scale uniformly: No
      Allow exploding: Yes
    

    As you can see, it is a BLOCK REFERENCE (Block Name: "GROUP320A0230"). Now, open up your second DXF (EXPO CVY01 TEST.dxf) directly and do the same exercise:

                      BLOCK REFERENCE  Layer: "0"
                                Space: Model space
                       Handle = f8
           Block Name: "GROUP3209FF10"
                    at point, X=   0.0000  Y=   0.0000  Z=   0.0000
       X scale factor:    1.0000
       Y scale factor:    1.0000
       rotation angle:      0
       Z scale factor:    1.0000
      Scale uniformly: No
      Allow exploding: Yes
    

    This tells you two fundamental things:

    • Each of your drawings contains a single instance of a BLOCK object.
    • Each BLOCK (despite being different) has the same name.

    In a DXF file you can't have multiple definitions with the same name. As a result, when you try to insert DXF number 2 into DXF number 1 you are presented with these warnings:

    Command: INSERT
    Duplicate definition of block GROUP3209FF10  ignored.
    Duplicate definition of block GROUP3209F8D0  ignored.
    Duplicate definition of block GROUP320A0410  ignored.
    Duplicate definition of block GROUP3209FE70  ignored.
    Duplicate definition of block GROUP320A0370  ignored.
    Duplicate definition of block GROUP320A0550  ignored.
    Duplicate definition of block GROUP320A02D0  ignored.
    Duplicate definition of block GROUP262224A0  ignored.
    Duplicate definition of block GROUP26222360  ignored.
    Duplicate definition of block GROUP262222C0  ignored.
    Duplicate definition of block GROUP26222220  ignored.
    Duplicate definition of block GROUP26221BE0  ignored.
    Duplicate definition of block GROUP262275E0  ignored.
    Duplicate definition of block GROUP26221FA0  ignored.
    

    Thus it can't insert the data because of this issue. What you can do is XREF instead (once you made it a DWG):

    XREF

    Then, if you type XREF again and right-click your reference:

    Right Click

    You select Bind. You are presented with two options:

    Bind Options

    Don't use Insert as that is the same as inserting the DXF into the other file. Use Bind. This will stitch the two files together. Once you explode the file you bound, you will see it has a new block name:

    Bind Results

    So to recap, it is important to give consideration to the block names. If a block is going to have a different definition, then it must have a different name. Don't forget nested blocks too. You have blocks inside blocks. So if they all have the same names, but have different content, you can't insert together without using referencing and bind.