Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: AutoCAD и VB.NET Добавлено: 16.06.10 12:51  

Автор вопроса:  DEmoN
кто подскажет как указать AutoCAD'овский файл для обработки в VB.NET
Суть: нужно не открывая AutoCAD'овский файл считать из него точки!
подскажите как это сделать плиз!
заранее благодарен!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #1 Добавлено: 16.06.10 13:05
Прочитать на официальном сайте структуру файла, написать парсер.
Или гуглить на тему *.DXF

Ответить

Номер ответа: 2
Автор ответа:
 DEmoN



Вопросов: 2
Ответов: 2
 Профиль | | #2 Добавлено: 16.06.10 13:11
почему *.DXF?
автокадовский файл с расширением *.DWG
автокад 2008 ой!

Ответить

Номер ответа: 3
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #3 Добавлено: 17.06.10 01:47
Стандартный автокадовский файл = .DXF. Почитай на официальном сайте.
У всех файлов структура разная.
Я писал парсер на три вида файлов, .dxf, .cp, .geo
Хочу добавить, что все файлы написанны по принципу, - "кто как хочет, тот так дрочит" и если ты пытаешся сделать парсер, то поеб... прийдётся не слабо. Я потратил на это около полугода.

Ответить

Номер ответа: 4
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #4 Добавлено: 17.06.10 01:48
Легче найти готовое решение и подправить его под свои нужды.

Ответить

Номер ответа: 5
Автор ответа:
 DEmoN



Вопросов: 2
Ответов: 2
 Профиль | | #5 Добавлено: 17.06.10 10:41
пасиба) а у тебя остались исходники? может скинишь фрагмент где прописанно обращение к автокадовскому файлу?

Ответить

Номер ответа: 6
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #6 Добавлено: 18.06.10 01:19
...обращение к автокадовскому файлу?

Что это значит?
Если тебе надо его прочитать, то вопросов быть не должно - System.IO.Нужный_тебе_метод.

...может скинишь фрагмент...
Могу, только тебе это врядли поможет.

  1.     Private Function ReadDXF(ByVal fileName As String) As IElementHost
  2.         'Обьявляю владельца всех графических обьектов,
  3.         'которые будут найденны в файле
  4.         Dim host As New ElementHost
  5.         'Читаю файл
  6.         Dim source() As String = IO.File.ReadAllLines(fileName)
  7.         Dim l As Integer = source.Length - 1
  8.         Dim iStart As Integer = 0
  9.         Dim emptyRec As Boolean = True
  10.         Dim rotation As IElement.Rotations = IElement.Rotations.ClockWise
  11.         'Нахожу значение говорящее, в какую сторону поворачиваются углы
  12.         'в данном файле
  13.         Dim tmp As Integer = Array.IndexOf(source, "$ANGDIR", iStart)
  14.         If tmp <> -1 Then
  15.             tmp += 2
  16.             rotation = CType(Integer.Parse(source(tmp)), IElement.Rotations)
  17.         End If
  18.         'Нахожу первое обозначение графических обьектов
  19.         'таковыми могут быть - Arc, Line, PolyLine, Ellipse Circle и тд.
  20.         iStart = Array.IndexOf(source, "BLOCKS", tmp + 1)
  21.  
  22.         Do
  23.             iStart += 1
  24.             If _regexDXF.IsMatch(source(iStart)) Then
  25.                 'Инициализирую найденный обьект
  26.                 _element = New Element(source, iStart, rotation)
  27.                 host._elementList.Add(_element)
  28.                 If emptyRec Then
  29.                     host._bounds = _element.Bounds
  30.                     emptyRec = False
  31.                 Else
  32.                     host._bounds = RectangleF.Union(host._bounds, _element.Bounds)
  33.                 End If
  34.             End If
  35.         Loop While iStart < l
  36.         Return host
  37.     End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам