I have a simple subroutine, which worked in Cadiopia IntelliCAD 2001, and simply lists Xref's to an MS Excel worksheet. When run for ProgeCAD 2016 I get all the blocks identified as isXref=false. I know they are Xref's, but they all have bad paths, they are also nested.

The original purpose of the routine was to list the Xref's, so I could mess with the path strings in a worksheet, then generate a Script file (*.scr) to correct the paths. I was hoping to modify the subroutine to fix the paths entirely. though not certain if path is a property of the Block definition or insert. Scanning through entities also only identifies Block inserts, it does not find any External References. Rephrase that: it returns the external references (EntityType=16) as block inserts (EntityType=6).

In ProgeCAD the xref's show up as External references in the properties box.

The computer is 64 bit, with 64 bit windows 7. IntelliCAD 2001 is on a different machine so not there to cause interference.

Anyone else experienced similar? Can someone confirm if this is a flaw in ProgeCAD vba objects?

For VBA discussions we generally ask that you can post the code or something similar, so that one of our technical team can have a look at all aspects which could be producing the results that you describe.

The second part of the code which admittedly is commented out, but was mentioned in original post. When scanning through the entities the external references are returned as block inserts (6) rather than as external references(16).

Also something seems wrong with the object/class definitions. In a DXF file external references are defined in the blocks table, and the block definition has extra tags to identify as Xref and provide the path to the Xref. The same goes when accessing via LISP.

The vba classes have the path property assigned to the External Reference entity, thus implying have to update the path for every instance, rather than once for the definition.

There doesn't seem much point being able to determine a block definition is an Xref, if cannot then access the path to the block definition.

That fixed the two main issues. Also noted that Path now a property of the block class, so added the extra line: AssemblyTable.Offset(r, 3).Value = Block.Path. It initially crashed the program, but was ok, once I removed the comments from the isXref test.

Getting path property via the block class, more than I expected. So again thank you.

About Us

This forum offers free support for progeCAD by qualified technical staff. Thank you for visiting.

CADDIT.net

The CADDIT.net team

CADDIT® is a registered trademark in Australia. All Rights Reserved. progeCAD™ is a trademark of ProgeCAD srl. Autodesk® and AutoCAD® are both registered trademarks or trademarks of a third party, and used only for comparison purposes. All other trademarks, trade names or company names referenced herein are used for identification only and are the property of their respective owners. Legal and Terms of Use.