Polyline3d (AUTOCAD 2012 на C# Visual Studio.)

Автор Тема: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)  (Прочитано 25560 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #15 : 16-10-2014, 00:22:03 »
Если ты в контексте своей темы: http://adn-cis.org/forum/index.php?topic=971.0 то наверное да.

получается что так:
 AcGe.Point3d pt = new AcGe.Point3d(r.NextDouble() * 100, r.NextDouble() * 100, r.NextDouble() * 100);

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #16 : 16-10-2014, 00:25:16 »
AcGe.Point3d pt = new AcGe.Point3d(r.NextDouble() * 100, r.NextDouble() * 100, r.NextDouble() * 100);
Именно это я и имел в виду. Прогрессируешь. :)
 
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #17 : 16-10-2014, 00:26:46 »
Именно это я и имел в виду. Прогрессируешь.
Спасибо. Еще вопросы можно задавать? И позвольте я пока не буду создавать новую тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #18 : 16-10-2014, 00:29:14 »
Еще вопросы можно задавать?
Да.
И позвольте я пока не буду создавать новую тему.
Если вопрос не связан с названием этой темы - не позволю!  >:(
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #19 : 16-10-2014, 00:32:00 »
Если вопрос не связан с названием этой темы - не позволю! 
Я Вас понял.

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #20 : 16-10-2014, 00:35:23 »
using
Код - C# [Выбрать]
  1. (AcDb.Polyline3d poly = idPoly.Open(AcDb.OpenMode.ForWrite) as AcDb.Polyline3d)


При добавлении этой строки, происходит ошибка, а в примере что вы дали свободно используется.
« Последнее редактирование: 16-10-2014, 00:47:20 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #21 : 16-10-2014, 00:49:15 »
При добавлении этой строки, происходит ошибка, а в примере что вы дали свободно используется.
А теперь приведи полностью код, который получился после добавления этой строки. Или ты думаешь что я могу сам догадаться куда ты её добавил? И какая ошибка происходит? На этапе компиляции или на этапе выполнения?

P.S.: Так как эта тема по смыслу продолжение предыдущей, то я их объединяю.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #22 : 16-10-2014, 00:54:25 »
А теперь приведи полностью код, который получился после добавления этой строки. Или ты думаешь что я могу сам догадаться куда ты её добавил? И какая ошибка происходит? На этапе компиляции или на этапе выполнения?

Код - C# [Выбрать]
  1. delegate void FinishedProcessingDelegate();
  2.         static void FinishedProcessing()
  3.         {
  4.  
  5.             AcAp.Document doc = AcAp.Application.DocumentManager.MdiActiveDocument;
  6.             using (AcAp.DocumentLock locDoc = doc.LockDocument())
  7.             {
  8.                 AcDb.ObjectId spaceId = doc.Database.CurrentSpaceId;
  9.                 using (AcDb.BlockTableRecord btr = spaceId.Open(AcDb.OpenMode.ForWrite) as AcDb.BlockTableRecord)
  10.                 {
  11.                     {
  12.  
  13.                         using (AcDb.Polyline3d poly = new AcDb.Polyline3d())
  14.                         {
  15.                            
  16.                             AcGe.Point3d pt = new AcGe.Point3d(r.NextDouble() * 100, r.NextDouble() * 100, r.NextDouble() * 100);
  17.                             poly.SetDatabaseDefaults();
  18.                             poly.ColorIndex = c_color;
  19.                             for (int i = 0; i < n_vertexies; i++)
  20.                             {
  21.                                 AcDb.ObjectId idPoly;
  22.                                 using (AcDb.Polyline3d poly =
  23.                                               idPoly.Open(AcDb.OpenMode.ForWrite) as AcDb.Polyline3d)
  24.  
  25.                                 using (AcDb.PolylineVertex3d pv3d = new AcDb.PolylineVertex3d(pt))
  26.                                 {
  27.                                     poly.AppendVertex(pv3d);
  28.                                 }
  29.                                 btr.AppendEntity(poly);
  30.                             }
  31.  
  32.                         }
  33.                     }
  34.                 }
  35.             }
  36.         }

Говорит, что poly уже используется, но похоже было и в примере.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #23 : 16-10-2014, 01:03:22 »
Пока я вижу, что ты не очень понимаешь что делаешь.  ;)
Попробуй так:
Код - C# [Выбрать]
  1. static void FinishedProcessing()
  2. {
  3.     AcAp.Document doc = AcAp.Application.DocumentManager.MdiActiveDocument;
  4.     using (AcAp.DocumentLock locDoc = doc.LockDocument())
  5.     {
  6.       AcDb.ObjectId spaceId = doc.Database.CurrentSpaceId;
  7.       using (AcDb.BlockTableRecord btr = spaceId.Open(AcDb.OpenMode.ForWrite) as AcDb.BlockTableRecord)
  8.       {
  9.          using (AcDb.Polyline3d poly = new AcDb.Polyline3d())
  10.          {
  11.              AcGe.Point3d pt = new AcGe.Point3d(r.NextDouble() * 100, r.NextDouble() * 100, r.NextDouble() * 100);
  12.              poly.SetDatabaseDefaults();
  13.              poly.ColorIndex = c_color;
  14.              btr.AppendEntity(poly);
  15.              for (int i = 0; i < n_vertexies; i++)
  16.              {
  17.                  using (AcDb.PolylineVertex3d pv3d = new AcDb.PolylineVertex3d(pt))
  18.                  {
  19.                      poly.AppendVertex(pv3d);
  20.                  }
  21.              }
  22.          }
  23.       }
  24.    }
  25. }

В  том коде, который я дал тебе в качестве образца, вершины к 3D-полилинии добавлялись после указания пользователем и там каждый раз нужно было "открывать" 3D-полилинию по её ObjectId и добавлять новую вершину. В этом же коде ты создаешь полилинию сразу и соответственно тебе не нужно её каждый раз открывать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #24 : 16-10-2014, 01:18:03 »
В  том коде, который я дал тебе в качестве образца, вершины к 3D-полилинии добавлялись после указания пользователем и там каждый раз нужно было "открывать" 3D-полилинию по её ObjectId и добавлять новую вершину. В этом же коде ты создаешь полилинию сразу и соответственно тебе не нужно её каждый раз открывать.
С этим ясно. Но я так понимаю, это не все изменения, которые нужны, для получения 3D-полилинии.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #25 : 16-10-2014, 01:18:54 »
С этим ясно. Но я так понимаю, это не все изменения, которые нужны, для получения 3D-полилинии.
Проверь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #27 : 16-10-2014, 01:32:09 »
Проверь.




Я исправлял код в http://adn-cis.org/forum/index.php?topic=999.msg4688#msg4688 . Убедись что он у тебя тоже исправленный.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн bakaIIHXАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 1
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #28 : 16-10-2014, 01:40:43 »
Я исправлял код в http://adn-cis.org/forum/index.php?topic=999.msg4688#msg4688 . Убедись что он у тебя тоже исправленный.

Ошибка исчезла. Программу запустил, начала работать, появляются точки, я так понимаю это вершины. Подскажите команду, что бы посмотреть свойства примитива.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline3d (AUTOCAD 2012 на C# Visual Studio.)
« Ответ #29 : 16-10-2014, 01:50:26 »
Ошибка исчезла.
Это хорошо.
Программу запустил, начала работать, появляются точки, я так понимаю это вершины.
Вообще-то они должны быть соединены линиями.
Подскажите команду, что бы посмотреть свойства примитива.
_LIST
_PROPERTIES
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение