reading 3Dpolyline vertices from a file and drawing it in AutoCAD

Discussion in 'AutoCAD' started by Johann, Nov 23, 2005.

  1. Johann

    Johann Guest

    I have come across a problem I'm unable to solve:

    I have a text file, where each line contain such data as X, Y and Z
    coordinate and a index number telling whether this point is a separate
    point (empty or 0) or a member of a 3Dpolyline (for example all points
    with number 1 are on one polyline and all points with index number 2
    are on another polyline). Luckily, if there's a polyline in the file,
    points on a specific polyline are one after the another.

    So, I made a code which reads a line from the file, gets the
    coordinates and the index number. In a case of a point, it just draws
    the point but what about the polyline?

    ' if the index number shows this point is a part of a polyline
    Case Else
    strIndexNumberOfNextInputLine = strIndexNumber
    ' because the program has already read a line,
    ' those points have to be assigned as the first vertex
    ' of a polyline
    dbl3DPolylineVertices(0) = Mid(strLine1, 30, 12)
    dbl3DPolylineVertices(1) = Mid(strLine1, 47, 12)
    dbl3DPolylineVertices(2) = Mid(strLine1, 60, 12)

    Do Until strBreaklineNumber <> strIndexNumberOfNextInputLine
    intVertexCount = 3
    Line Input #1, strLine1
    strBreaklineNumber = LTrim(Mid(strLine1, 9, 8))
    dbl3DPolylineVertices(intVertexCount) = Mid(strLine1, 30,
    12)
    dbl3DPolylineVertices(intVertexCount + 1) = Mid(strLine1,
    47, 12)
    dbl3DPolylineVertices(intVertexCount + 2) = Mid(strLine1,
    60, 12)

    intVertexCounter = intVertexCount + 3
    Loop

    ' now i know how many vertices there are in the line
    ' [it was defined as "Dim dbl3DPolylineVertices() as Double"]
    ReDim Preserve dbl3DPolylineVertices(0 To intVertexCount - 3)

    Set ent3DPolyline =
    ThisDrawing.ModelSpace.Add3DPoly(dbl3dpolylineVertices)


    I guess the problem is that the vertex information gets lost and the
    difficultiness of programming because of reading one row at a time from
    the text file.

    I managed to do this when I defined the number of vertices beforehand
    in the beginning (like "Dim dbl3DPolylineVertices(0 to 5) as Double"),
    but in my files the polylines can have different number of vertices.

    Any ideas how to solve this or make the whole thing better?

    Thanks!

    Johann.
     
    Johann, Nov 23, 2005
    #1
  2. Johann

    aryan2000 Guest

    Johann,

    Post all the code to read the file and create the polylines and attach
    the text file with the info in it, then we can work something out. Try
    this first

    ReDim Preserve dbl3DPolylineVertices(0 To intVertexCount - 3) as Double
     
    aryan2000, Dec 17, 2005
    #2
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.