Замени Polyline на Polyline3d, AddVertexAt на AppendVertex. При этом нужно будет создать PolylineVertex3d, передав конструктору точку вершины.
Для PolylineVertex3d нужно отдельно создавать точку?Вопроса не понял.
Вопроса не понял.
создаем вершину,какую точку необходимо указывать?Ту точку, которая будет вершиной.
AcGe.Point3d pt = res.Value.TransformBy(mat);
В строке AcGe.Matrix3d mat = ed.CurrentUserCoordinateSystem; мы получаем матрицу mat преобразования из ПСК в МСК.
ed.GetPoint даёт нам в res.Value координату, указанную пользователем, в ПСК.
Таким образом AcGe.Point3d pt = res.Value.TransformBy(mat); даёт нам точку, которую указал пользователь, но преобразованную в МСК. Это преобразование нужно для внесение информации о вершине полилинии, так как вершины хранят информацию именно в МСК.
Значит мне нужно, что бы указывались координаты, которые сами генерируются,а потом преобразовать их, что бы получить вершину полилинии.Если у тебя координаты сразу в МСК, то ничего преобразовывать не нужно. Это был конкретный пример ручного ввода координат пользователем. У тебя же ситуация иная.
Если у тебя координаты сразу в МСК, то ничего преобразовывать не нужно. Это был конкретный пример ручного ввода координат пользователем. У тебя же ситуация иная.
Просто не могу понять, как указать вершину.А я не могу понять в каком виде у тебя вершина.
P.S.: Создается впечатление, что ты рассчитываешь на то, что я сделаю полностью за тебя твою задачу. Но это не соответствует моему представлению о том, чем я тут занимаюсь. Моя цель научить тебя самостоятельно это делать.
Я хочу научится все делать сам, просто много вопросов .Отлично. Ты пишешь, что не знаешь как указать вершину. Допустим ты сформировал уже точку:
x,y,z - известные тебе числа
Хотел спросить, а x,y,z через random.NextDouble задавать?Если ты в контексте своей темы: http://adn-cis.org/forum/index.php?topic=971.0 то наверное да.
Если ты в контексте своей темы: 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);Именно это я и имел в виду. Прогрессируешь. :)
Именно это я и имел в виду. Прогрессируешь.Спасибо. Еще вопросы можно задавать? И позвольте я пока не буду создавать новую тему.
Еще вопросы можно задавать?Да.
И позвольте я пока не буду создавать новую тему.Если вопрос не связан с названием этой темы - не позволю! >:(
Если вопрос не связан с названием этой темы - не позволю!Я Вас понял.
usingКод - C# [Выбрать]
(AcDb.Polyline3d poly = idPoly.Open(AcDb.OpenMode.ForWrite) as AcDb.Polyline3d)
При добавлении этой строки, происходит ошибка, а в примере что вы дали свободно используется.А теперь приведи полностью код, который получился после добавления этой строки. Или ты думаешь что я могу сам догадаться куда ты её добавил? И какая ошибка происходит? На этапе компиляции или на этапе выполнения?
А теперь приведи полностью код, который получился после добавления этой строки. Или ты думаешь что я могу сам догадаться куда ты её добавил? И какая ошибка происходит? На этапе компиляции или на этапе выполнения?
В том коде, который я дал тебе в качестве образца, вершины к 3D-полилинии добавлялись после указания пользователем и там каждый раз нужно было "открывать" 3D-полилинию по её ObjectId и добавлять новую вершину. В этом же коде ты создаешь полилинию сразу и соответственно тебе не нужно её каждый раз открывать.С этим ясно. Но я так понимаю, это не все изменения, которые нужны, для получения 3D-полилинии.
С этим ясно. Но я так понимаю, это не все изменения, которые нужны, для получения 3D-полилинии.Проверь.
Проверь.
Проверь.
(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fs29.postimg.org%2F8cjiqd78z%2Ferror.jpg&hash=bba41c65689378aa84a87db43fa16828) (http://postimg.org/image/8cjiqd78z/)
Я исправлял код в http://adn-cis.org/forum/index.php?topic=999.msg4688#msg4688 . Убедись что он у тебя тоже исправленный.
Ошибка исчезла.Это хорошо.
Программу запустил, начала работать, появляются точки, я так понимаю это вершины.Вообще-то они должны быть соединены линиями.
Подскажите команду, что бы посмотреть свойства примитива._LIST
Вообще-то они должны быть соединены линиями.
Но почему то одни точки.Проверь количество вершин у созданных 3D-полилиний. И какие координаты у этих вершин.
Проверь количество вершин у созданных 3D-полилний. И какие координаты у этих вершин.ПОЛИЛИНИЯ Слой: "0"