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

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

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

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

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

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

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

Не работает записанный макрос

Автор mikor, 30.01.17, 07:55:53

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

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

mikor

Записываю макрос в следующей последовательности:
1. Нажимаю запись, сохраняю макрос.
2. Перехожу через "Параметры текущего чертежа" и изменяю высоту шрифта у размеров на 3,5мм.
3. Нажимаю ОК. В чертеже все размеры меняют высоту. Останавливаю макрос.
4. Открываю любой чертеж, пробую применить полученный макрос, но ничего не происходит.
В чем может быть дело?

В записанном коде, скорее всего действие два, в макрос не пишется.

Алхимик

Записывать с помощью Компаса-Макро в чертеже можно только геометрию, обозначения, размеры, шероховатость, но что то редактировать, когда оно уже создано, нельзя. Тут только в SDK лесть, если умеете.
+ Благодарностей: 1

mikor

Цитата: Алхимик от 30.01.17, 09:03:58
Записывать с помощью Компаса-Макро в чертеже можно только геометрию, обозначения, размеры, шероховатость, но что то редактировать, когда оно уже создано, нельзя. Тут только в SDK лесть, если умеете.
Ясно, очень жаль. В программировании 0, но на всякий случай приложу текст макроса, который не работает:
# -*- coding: cp1251 -*-
#|2

import Kompas10API5 as KAPI
import Kompas10API7 as KAPI7
import pythoncom
from win32com.client import Dispatch
import LDefin2D
import LDefin3D
import ksConstants as CONST2D7
import ksConstants3D as CONST3D7
import MiscellaneousHelpers as MH

iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)
MH.iKompasObject = iKompasObject

iApplication = Dispatch('KOMPAS.Application.7')
iApplication = KAPI7.IApplication(iApplication)
MH.iApplication = iApplication

iDocument2D = iKompasObject.ActiveDocument2D()
iDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)


Тогда такой вопрос. Также пытаюсь через макрос вставить технические требования (файл прилагаю). Но макрос опять не работает (его тоже прилагаю). Видел у кого-то на канале ютуба, что должно работать.


Алхимик

В вашем примере компас углядел ошибку при вводе значения под дробью.

mikor

Выполнил ваш макрос - ничего не происходит. (компас 16.1.7, 32разрядный).

Алхимик

Действительно, но проверял работало, сейчас не работает и ругается на строку, которая хочет поставить точку в конце второго пункта)))
ЦитироватьiTextItem.ItemType = CONST2D7.constants.ksTItksTItFractionEnd
в SDK такой тип не нашел)
Должен работать, но точку в конце второго пункта не ставит.
+ Благодарностей: 1

mikor

Все работает, спасибо. А можно сделать, чтобы шрифт IT14/2 был меньше?
И последний вопрос: можно ли как-то автоматизировать изменение высоты шрифтов размеров, выносок, разрезов, видов и т.д. Очень часто приходится это делать.

Алхимик

Цитата: mikor от 30.01.17, 10:12:00
Все работает, спасибо. А можно сделать, чтобы шрифт IT14/2 был меньше?
Запишите когда он вообще строкой идет и макрос ваш должен работать.

Ё

Цитата: Алхимик от 30.01.17, 09:03:58
Записывать с помощью Компаса-Макро в чертеже можно только геометрию, обозначения, размеры, шероховатость, но что то редактировать, когда оно уже создано, нельзя. Тут только в SDK лесть, если умеете.

А зачем - в SDK? Если из текста макроса многое понятно. Например, понятно, что для действий mikora в макросе нет готовых конструкций. А, значит, их надо создавать самостоятельно в соответствии с используемым языком программирования. Либо искать: где кто сделал что-то близкое.

mikor

Не могу побороть следующий глюк.
1. Если в чертеже есть ТТ, то они заменяются макросом нормально.
2. Если создаю новый чертеж, то третья строчка не помещается в одну строку (на картинке). Только если зайти в редактирование ТТ и просто их сохранить, ничего не изменяя, то все становится нормальным. Но это уже лишние телодвижения, от которых и хотел избавиться.

Макрос прилагаю.

Алхимик

Вы сами ответили на свой вопрос, нужно сначала удалить ТТ, а потом записывать новые данные.

iTextItem.Delete()
iTechnicalDemand.Update()

mikor

Ваш макрос не работает, пробовал вставить 2 строчки в свой - и мой перестал работать.

Алхимик


mikor

Работает, но глюк с переносом строки сохранился.

Алхимик

Странно, у меня добавляет в старый и новый чертеж с переносом.

mikor

А хотелось-то без переноса! И попробуйте зайти в редактирование и просто сохранить, ничего не изменяя - тогда перенос исчезнет.

Алхимик

Пойдем от обратного, раз при повторном редактировании ТТ все нормально, то организуем два входа в ТТ для заполнения.
+ Благодарностей: 1

mikor

Вот теперь все отлично, спасибо. При выполнении макроса мельком видно, как происходят хитрые последовательности действий :)

Алхимик

Если интересно, то вот что можно записать макросом из чертежа, лежит тут: C:\Program Files\ASCON\KOMPAS-3D V**\Libs\Kompas-Macro в файле 'Pik'