Объекты из документа 2D

Автор dosart, 13.10.16, 18:15:26

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

dosart

ЦитироватьТипа макрообъект - не примитив?
не знаю.
Я думал, что примитив, это окружности, отрезки и прочее.

Так посмотрите SDK, какие типы есть.

dosart

Sabahs, если сделать так;
MacroObjects.MacroObject[0] то мне вернётся макрообъект цельный(т.е. деление на дальнейшие примитивы не пойдёт).


dosart

Возвращается нулевой элемент колекции MacroObjects?


Откуда я знаю, что возвращается я кода вопроса не вижу.

dosart

Sabahs, можно макроэлемент "разобрать" на составные части? На примитивы вроде линий и окружностей.


dosart

Какой интерфейс для это нужно использовать?

Тут сложнее, хотя, где то есть, ищите.
Использовалось здесь http://forum.ascon.ru/index.php/topic,20277.msg130327.html#msg130327 это коммерческий продукт, хоть и бесплатный для использования.

dosart

Sabahs, т.е. стандартными средствами API компаса нельзя разбить макрообъект на примитивы? У меня просто была идея разбить макрообъект на примитивы, и изменить координаты каждого примитива, чтобы, хотя бы сдвинуть объект.

Можно, читайте SDK, там всё написано.
PS. Зачем его разбивать, чтобы сдвинуть? Он двигается без разбиения.

dosart

а если через API? То можно сдвинуть не разбирая?


На этом, тема, закрыта - не люблю ленивых.
Вам лень почитать.
IMacroObject.SetPlacement

dosart

Я знаю про эту функцию.

Вот и хорошо, на этой оптимистичной новости, тему закрываем.
+ Благодарностей: 1

dosart

Sabahs,
если есть потребность научиться рисовать кружочки, то как это сделать правильно? Я делаю так, у меня вылетает на строчке:
IDrawingObject drawingObject = (IDrawingObject) view;

ViewsAndLayersManager viewsAndLayersManager = document2D.ViewsAndLayersManager;
IViews views = viewsAndLayersManager.Views;
IView view = views.View[0];
IDrawingObject drawingObject = (IDrawingObject) view;
ICircle circle = (ICircle) drawingObject;
circle.Xc = 100;
circle.Yc = 100;
circle.X  = 150;
circle.Yc = 205;
circle.Radius = 100;
drawingObject.Update();
IDrawingContainer drawingContainer = (IDrawingContainer)view;

[/code]

http://forum.ascon.ru/index.php/topic,20426.msg131779.html#msg131779
Вообще у Вас код написан через ...
После получения вида, нужно получить контейнер, затем коллекцию окружностей, а от неё получить интерфейс окружности, далее заполнить и создать её.
ViewsAndLayersManager viewsAndLayersManager = document2D.ViewsAndLayersManager;
IViews views = viewsAndLayersManager.Views;
IView view = views.View[0];
IDrawingContainer drawingContainer = (IDrawingContainer)view;
ICircles Circles = drawingContainer.Circles
ICircle circle = ICircles.Add
IDrawingObject drawingObject = (IDrawingObject) circle
circle.Xc = 100;
circle.Yc = 100;
circle.Radius = 100;
circle.Style  = 1;
drawingObject.Update();
+ Благодарностей: 1