Hello!
The following answers are based on Viewer demo from the extended version of <b>CAD Import .NET</b>.
<blockquote id="quote"><font size="2" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><ul><li> Open a DWG file</li></ul><hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
Public Sub LoadFile(ByVal dlg As Boolean) contains the following lines:
Code: Select all
FCADImage = <font color="blue">New</font id="blue"> DWG.DWGImage
FCADImage.LoadFromFile(<font color="blue">Me</font id="blue">.openFileDlg.FileName)
which are responsible on opening DWG file.
<blockquote id="quote"><font size="2" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><ul><li>
Select one or several polylines on screen</li>
<li>Retrieve all vertices in those polylines and store them in a collection</li>
<li>Create a new layer called "PROFILE", defining color and linetype</li>
<li>Paint al L-shaped polyline on top of each vertex (like an "L" letter) in new layer "PROFILE"</li>
<li>Save it all in DXF (or DWG, if possible) </li></ul><hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
Find in the <font color="blue">Public Sub</font id="blue"> LoadFile(<font color="blue">ByVal</font id="blue"> dlg <font color="blue">As Boolean</font id="blue">) and add <b>ChangeSelectionCond</b>(<font color="blue">False</font id="blue">) after <font color="blue">Me</font id="blue">.selEntityUse = <font color="blue">True</font id="blue">.
Find in the <font color="blue">Public Sub</font id="blue"> cadPictBox_MouseUp and add the following lines:
Code: Select all
<font color="blue">Dim</font id="blue"> Ent <font color="blue">As</font id="blue"> CADEntity
<font color="blue">Dim</font id="blue"> Poly <font color="blue">As</font id="blue"> CADPolyLine
<font color="blue">Dim</font id="blue"> Vert <font color="blue">As</font id="blue"> CADVertex
<font color="blue">Dim</font id="blue"> Layer <font color="blue">As</font id="blue"> CADLayer
<font color="blue">Dim</font id="blue"> LType <font color="blue">As</font id="blue"> CADLineType
<font color="blue">Dim</font id="blue"> LPoly <font color="blue">As</font id="blue"> CADPolyLine
<font color="blue">Dim</font id="blue"> LVert <font color="blue">As</font id="blue"> CADVertex
<font color="blue">Dim</font id="blue"> I <font color="blue">As Integer</font id="blue">
<font color="blue">Dim</font id="blue"> S <font color="blue">As String</font id="blue">
Ent = FCADImage.SelectExt(e.X, e.Y)
<font color="green">'add line type</font id="green">
LType = <font color="blue">Me</font id="blue">.FCADImage.Converter.LTypeByName("ISO dash")
<font color="blue">If</font id="blue"> LType <font color="blue">Is Nothing Then</font id="blue">
LType = <font color="blue">New</font id="blue"> CADLineType
LType.Name = "ISO dash"
LType.Lines.Ticks.Add(1.2)
LType.Lines.Ticks.Add(-0.3)
<font color="blue">Me</font id="blue">.FCADImage.Converter.LinesByName("ISO dash")
<font color="blue">Me</font id="blue">.FCADImage.Converter.GetSection(CADImport.ConvSection.LTypes).AddEntity(LType)
<font color="blue">End If</font id="blue">
<font color="green">'add layer</font id="green">
Layer = <font color="blue">Me</font id="blue">.FCADImage.Converter.LayerByName("PROFILE")
Layer.Color = Color.RoyalBlue
Layer.Visibility = <font color="blue">True</font id="blue">
Layer.SetLType(LType)
<font color="blue">Me</font id="blue">.FCADImage.Converter.Loads(Layer)
<font color="green">'Get vertexes from a polyline</font id="green">
<font color="blue">If TypeOf</font id="blue"> Ent <font color="blue">Is</font id="blue"> CADPolyLine <font color="blue">Then</font id="blue">
Poly = <font color="blue">CType</font id="blue">(Ent, CADPolyLine)
<font color="blue">For</font id="blue"> I = 0 <font color="blue">To</font id="blue"> Poly.Count - 1
Vert = Poly.Vertexes(I)
<font color="green">'add L-Shaped Polyline</font id="green">
LPoly = <font color="blue">New</font id="blue"> CADPolyLine
LPoly.Closed = False
LPoly.Layer = Layer
LVert = <font color="blue">New</font id="blue"> CADVertex
LVert.Point = <font color="blue">New</font id="blue"> DPoint(0 + Vert.Point.X, 10 + Vert.Point.Y, 0 + Vert.Point.Z)
LPoly.AddEntity(LVert)
LVert = <font color="blue">New</font id="blue"> CADVertex
LVert.Point = <font color="blue">New</font id="blue"> DPoint(0 + Vert.Point.X, 0 + Vert.Point.Y, 0 + Vert.Point.Z)
LPoly.AddEntity(LVert)
LVert = <font color="blue">New</font id="blue"> CADVertex
LVert.Point = <font color="blue">New</font id="blue"> DPoint(5 + Vert.Point.X, 0 + Vert.Point.Y, 0 + Vert.Point.Z)
LPoly.AddEntity(LVert)
LPoly.Loaded(Me.FCADImage.Converter)
<font color="blue">Me</font id="blue">.FCADImage.CurrentLayout.Entities.Add(LPoly)
<font color="blue">Me</font id="blue">.FCADImage.Converter.OnCreate(LPoly)
Next
<font color="blue">Me</font id="blue">.cadPictBox.Invalidate()
SaveAsDXF("c:\\LShapedPoly.dxf")
<font color="blue">End If</font id="blue">
Sergey.
Please post questions to the forum or write to
support@cadsofttools.com