• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Python

Автор Веталь, 11.12.11, 22:30:59

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

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

Веталь

Помогите плз... Как в питоне копировать круг????

chelkar

Непонятно что вы спрашиваете ...
Вот копия объекта окружность:
# Строим окружность
obj = iDocument2D.ksCircle(0, 0, 20.0, 1)
# Копируем построеную окружность со смещением по Х на 50 мм
iDocument2D.ksCopyObj (obj, 0, 0, 50, 0, 1, 0)

Веталь

Спасибо, а можно за один раз несколько копий сделать?

Можно.
obj = iDocument2D.ksCircle(0, 0, 20.0, 1)
iDocument2D.ksCopyObj (obj, 0, 0, 50, 0, 1, 0)
iDocument2D.ksCopyObj (obj, 0, 0, 50, 50, 1, 0)
iDocument2D.ksCopyObj (obj, 0, 0, 150,-30, 1, 0)

Веталь

Спасибо большое

chelkar

Еще можно создать группу объектов и уже ее копировать.
Это удобно если с объектами нужно сделать несколько манипуляций.
Функции такие:
# Создать группу
NewGroup = iDocument2D.ksNewGroup (0)
# Создать объекты группы
iDocument2D.ksCircle(0, 0, 20.0, 1)
iDocument2D.ksCircle(0, 0, 30.0, 1)
iDocument2D.ksCircle(0, 0, 40.0, 1)
# Завершить группу
iDocument2D.ksEndObj ()
# Копировать группу
iDocument2D.ksCopyObj (NewGroup, 0, 0, 150,-30, 1, 0)

Группу можно заполнить и уже существующими объектами.
Например рамкой:
ksDocument2D::ksSelectGroup
Или поэлементно ksDocument2D::ksAddObjGroup

В целом рекомендую просмотреть все методы ksDocument2D в справке. Большинство из них очевидно, так как являются методами построения геометрических объектов. А вот про группу, макроэлемент имеет смыс почитать подробнее.

У 2D-документа чуть больше сотни функций. Придется попотеть :).


Веталь

А какие основные функции Питона? Тоесть для чего  он нужен?

#7
Макросы.

chelkar

Цитата: Веталь от 15.12.11, 22:03:48
... для чего  он нужен?
Макросы для повторяющихся действий как здесь http://forum.ascon.ru/index.php/topic,18473.0.html или здесь http://forum.ascon.ru/index.php/topic,18476.0.html.
Либо просто какие-то программы, как здесь http://forum.ascon.ru/index.php/topic,16941.0.html.
Все зависит от желания и фантазии.
Основное отличие от других способов разработки - не требуется компилятор. Ну и язык простой, хотя последнее на любителя.

Николай

Попробовал записать последовательность построения в 2Д с помощью Компас Макро.
При воспроизведении Макроса оказалось- что должно быть стёрто кнопкой "усечь кривую"- не усеклось!  Или так и задумано?

chelkar

В справке на библиотеку КОМПАС-Макро перечислены только объекты чертежа (отрезки, размеры и т.п.).
Команд редактирования нет.
Значит так и должно быть.

Николай

Что сделать, чтобы Python  КОМПАС-Макро воспринимал Кириллицу?
При попытке откорректировать строку:
iTextItemParam.s = "Наименование"
получается:
iTextItemParam.s = "@8<5@Наименование"
да и комментарии не удаётся написать...

В редакторе WordPad, идет с Windows.

Веталь

Цитата: chelkar от 14.12.11, 10:11:10
Еще можно создать группу объектов и уже ее копировать.
Это удобно если с объектами нужно сделать несколько манипуляций.
Функции такие:
# Создать группу
NewGroup = iDocument2D.ksNewGroup (0)
# Создать объекты группы
iDocument2D.ksCircle(0, 0, 20.0, 1)
iDocument2D.ksCircle(0, 0, 30.0, 1)
iDocument2D.ksCircle(0, 0, 40.0, 1)
# Завершить группу
iDocument2D.ksEndObj ()
# Копировать группу
iDocument2D.ksCopyObj (NewGroup, 0, 0, 150,-30, 1, 0)

Группу можно заполнить и уже существующими объектами.
Например рамкой:
ksDocument2D::ksSelectGroup
Или поэлементно ksDocument2D::ksAddObjGroup

В целом рекомендую просмотреть все методы ksDocument2D в справке. Большинство из них очевидно, так как являются методами построения геометрических объектов. А вот про группу, макроэлемент имеет смыс почитать подробнее.

У 2D-документа чуть больше сотни функций. Придется попотеть :).

Я пробывал, но когда я второй раз копирую группу то оно создает еще копии якобы зеркала... как от этого избавится, и сразу вопрос я в 2D нарисовал пирамиду как мне ее как можно быстрее розместить ее в ромбе??? любые розмеры!!!!

Их еще бы код посмотреть, а то на словах понять алгоритм работы, что, куда и как Вы копируете?

Веталь

Да не выходит слишком большое для отправки=((((( Что же делать?

Вы выложите от начала до конца суть проблемы, чтобы можно было понять причину, например отрезок и все манипуляции, которые Вы с ним делаете.

Веталь

вот мне писали что можно создать группу обьектов вот
NewGroup = iDocument2D.ksNewGroup (0)
# Создать объекты группы
iDocument2D.ksCircle(0, 0, 20.0, 1)
iDocument2D.ksCircle(0, 0, 30.0, 1)
iDocument2D.ksCircle(0, 0, 40.0, 1)
# Завершить группу
iDocument2D.ksEndObj ()
# Копировать группу
iDocument2D.ksCopyObj (NewGroup, 0, 0, 150,-30, 1, 0)

но потом когда я один раз группу скопировал, и второй раз пытаюсь ее же копировать на новые координаты, "старые не удаляю" то на оригинальных кругах т.е. которые я создавал а не копировал, появляются такиеже круги, т.е накладывается еще одна копия... хотя копию с координатами которые я указал создает....

#18
Я понял, что Вы повторно отрабатываете макрос?
Можно заменить строку NewGroup = iDocument2D.ksNewGroup (0) на NewGroup = iDocument2D.ksNewGroup (1), т.е. сделать группу временной.

Веталь

q = iDocument2D.ksNewGroup (0)
obj=iDocument2D.ksLineSeg(30, 70, 80, 70, 1)
obj=iDocument2D.ksLineSeg(30, 70, 55, 113, 1)
obj=iDocument2D.ksLineSeg(55, 113, 105, 113, 1)
obj=iDocument2D.ksLineSeg(105, 113, 80, 70, 1)
obj=iDocument2D.ksPoint( 84, 140, 0)
obj=iDocument2D.ksLineSeg(84, 140, 30, 70, 1)
obj=iDocument2D.ksLineSeg(84, 140, 55, 113, 1)
obj=iDocument2D.ksLineSeg(84, 140, 105, 113, 1)
obj=iDocument2D.ksLineSeg(84, 140, 80, 70, 1)
iDocument2D.ksEndObj ()
iDocument2D.ksCopyObj (q, 0, 0, 50,0, 1, 0)
iDocument2D.ksCopyObj (q, 0, 0, 100,0, 1, 0)

вот когда я так создаю, то по идеи же должно быть 3 обьекта а их почему то 4...

q = iDocument2D.ksNewGroup (1)
obj=iDocument2D.ksLineSeg(30, 70, 80, 70, 1)
obj=iDocument2D.ksLineSeg(30, 70, 55, 113, 1)
obj=iDocument2D.ksLineSeg(55, 113, 105, 113, 1)
obj=iDocument2D.ksLineSeg(105, 113, 80, 70, 1)
obj=iDocument2D.ksPoint( 84, 140, 0)
obj=iDocument2D.ksLineSeg(84, 140, 30, 70, 1)
obj=iDocument2D.ksLineSeg(84, 140, 55, 113, 1)
obj=iDocument2D.ksLineSeg(84, 140, 105, 113, 1)
obj=iDocument2D.ksLineSeg(84, 140, 80, 70, 1)
iDocument2D.ksEndObj ()
iDocument2D.ksCopyObj (q, 0, 0, 50,0, 1, 0)
iDocument2D.ksCopyObj (q, 0, 0, 100,0, 1, 0)


А когда так то оно копии не создает??? За ранее спасибо...