.NET

Reply
Active Contributor LE3
Active Contributor
LE3
Posts: 30
Registered: ‎06-07-2004
Message 1 of 1 (253 Views)

RealDWG 2013 *bug* ?

253 Views, 0 Replies
05-14-2012 08:06 AM

We are getting an error (see attached image) using RealDWG 2013 on this test function below note the same code as-is works in RealDWG 2009 - the DW1645ASY.dwg it is a drawing made of 3D solids, if we try this with a drawing without 3D solids sometimes it will work and others not - Any ideas? or Help that I can get about this? - Thanks:

 

        public static void Draw(string outputFile)
        {
            string acadTemplateFile = @"C:\hotfiles\CAD_Templates\Common\acad.dwt";
            using (Host host = new Host())
            {
                using (Autodesk.AutoCAD.DatabaseServices.Database db = new Autodesk.AutoCAD.DatabaseServices.Database(false, true))
                {
                    File.Copy(acadTemplateFile, outputFile, false);
                    db.ReadDwgFile(outputFile, System.IO.FileShare.ReadWrite, false, null);
                    HostApplicationServices.WorkingDatabase = db;

                    using (Transaction tr = db.TransactionManager.StartTransaction())
                    {
                        BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
                        BlockTableRecord iModelSpace = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);


                        ObjectId blockId = ObjectId.Null;

                        using (Transaction tran = db.TransactionManager.StartTransaction())
                        {
                            using (Autodesk.AutoCAD.DatabaseServices.Database sdb = new Autodesk.AutoCAD.DatabaseServices.Database(false, true))
                            {
                                string file = @"C:\hotfiles\CAD_Templates\Ductwork\3D\Elbow 45\DW1645ASY.dwg";
                                sdb.ReadDwgFile(file, System.IO.FileShare.ReadWrite, false, "");

                                blockId = db.Insert(file, sdb, true);
                            }
                            HostApplicationServices.WorkingDatabase = db;
                            tran.Commit();

                        }


                        BlockReference blockRef = new BlockReference(Point3d.Origin, blockId);
                        iModelSpace.AppendEntity(blockRef);
                        tr.AddNewlyCreatedDBObject(blockRef, true);

                        tr.Commit();
                    }

                    db.SaveAs(outputFile, DwgVersion.AC1015);
                }
            }
        }

Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.