.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I have region is in external dxf file,
how to extrude it along polyline?
I can't get region after using dxfin method
Database myDxfDb = new Database(false, true);
myDxfDb.DxfIn(filename, logFilename);
Matrix3d dxfTrf = Matrix3d.Identity;
_ThisDatabase.Insert(dxfTrf, myDxfDb, true);
_ThisDatabase.UpdateExt(true);
myDxfDb.Dispose();
acTrans.Commit();
ObjectId id = AcUtils.EntLast();
Entity _ent = (Entity)acTrans.GetObject(id, OpenMode.ForWrite);
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
look to the objecttype that is the result of inserting the DXF ==> is it a region or is it a block(definition/-reference....) ![]()
- alfred -
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at
-------------------------------------------------------------------------
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
dxf file contain only one region object
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
and now try to insert this DXF into another drawing ==> what does it get then?
- alfred -
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at
-------------------------------------------------------------------------
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi alfred,
yes, I can that. dxf import as block reference.
well, how can I use this block reference ![]()
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
either explode it or use the BlockTableRecord from this object to get the parts of this blockdefinition, there you also find then the region. You can then create an extrusion if this and add it to the database.
Good luck, - alfred -
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at
-------------------------------------------------------------------------
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
and a sample for how to create 3D-solids from 2D-objects could be found >>>here<<< (and Kean Walmsley has a lot more interesting samples on his site)
- alfred -
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at
-------------------------------------------------------------------------
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
thanks a lot for your interrest alfred,
but my problem is not extrude region. I cant get region from dxf file.
Re: How to extrude imported dxf along polyline?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I found the solution
public Entity ImportDxfAsEntity(string FileName, Point3d InsertionPoint, double Rotation = 0)
{
ObjectId blkid = ObjectId.Null;
Entity ent = null;
using (Database bdb = new Database(false, true))
{
bdb.DxfIn(FileName, @"c:\log.txt");
//blkid = _ThisDatabase.Insert(System.IO.Path.GetFileNameWit houtExtension(FileName), bdb, true);
blkid = _ThisDatabase.Insert("blok", bdb, true);
using (Transaction tr = _ThisDatabase.TransactionManager.StartTransaction( ))
{
BlockReference bref = new BlockReference(InsertionPoint, blkid);
using (BlockTableRecord btAttRec = (BlockTableRecord)bref.BlockTableRecord.GetObject( OpenMode.ForWrite))
{
foreach (ObjectId subid in btAttRec)
{
ent = (Entity)subid.GetObject(OpenMode.ForRead);
}
}
tr.Commit();
}
}
return ent;
}

