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

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

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

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

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

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

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

макрос. заполнение основной надписи всех открытых чертежей

Автор feringer, 05.02.12, 08:27:09

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

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

feringer


Что Вам конкретно не понятно или Вы предлагаете, кому-то сделать?

feringer

не понятно как заполнить основную надпись, как работать со всеми открытыми документами

IDocuments - коллекция документов, открытых в приложении КОМПАС-3D, подробнее читайте в SDK.

Код работы со штампом, сформированный на Python автоматически при записи макроса, с помощью библиотеки Компас-макро.
iStamp = iDocument2D.GetStamp()
iStamp.ksOpenStamp()
iStamp.ksColumnNumber(1)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32769
iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))
iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = "arh"
iTextItemParam.type = 0
iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 10.0
iTextItemFontParam.ksu = 1.0
iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)
iStamp.ksCloseStamp()



feringer

спасибо, понятно

только один вопрос:
вот здесь iStamp.ksColumnNumber(1) какие цифры нужно ставить, чтобы указать фамилии в разработал и т.д.



Poltava

Есть готовый макрос для заполнения только вот не всех открытых документов а либо текущего либо всех документов в папке! Делал как то для себя. кстати при необходимости он еще умеет пересохранять с нужным именем и в нужной версии файла. Если интересно могу поискать и поделиться :)

feringer


Poltava

Ну вот то что быстро нашлось в архиве
Макрос заполняет штамп открытого чертежа.
При первом запуске в папке с файлом макроса создается файл настроек с названием name_stamped.ini
В нем содержаться данные для заполнения штампа имеющие следующую структуру
название параметра | Значение параметра
если значение параметра опущено то есть после | нет ничего то данные в этой графе будут стерты
Если вам необходимо чтобы данные в графе оставались неизменны то после  |  нужно ставить символ - тогда макрос пропустит эту строчку во время выполнения
По поводу остального что я писал
Цитироватьпересохранять с нужным именем и в нужной версии файла.
если интересует могу порыться еще и поискать. но на сколько я помню, я не привел в красивый вид и забросил работу над ним из за отсутствия времени на приведение в порядок. Хочу как то найти время доработать и выложить сюда. Но увы со временем пока не густо. так что если вам горит то могу поискать то что есть ну а если не горит то как только так сразу  ::)

feringer

большое спасибо за скрипт

Цитата: Poltava от 10.02.12, 12:25:51
а если не горит то как только так сразу  ::)

не горит





Dronis

С какими версиями  совместим скрипт? Запускал на 10 не работать.... Говорит  ImportError: No module named  Kompas10API5. Может не хватает чего?

Poltava

Ну макрос писал на базе 12 компаса. Проблемы вероятнее всего в начале где импорт модулей. Попробуйте записать макрос сами и либо положите файл сюда либо сравните начало файлов сами проблемы скорее всего именно в начале из за версий API

Ser Pavel

А в открытом файле (при условии мнголистового чертежа) он изменяет штамп только на первом листе или на всех.
Одно время назад скачивал тут макрос "Маштаб и дата". Который должен был дату менять. Меняет только на первом листе.

Poltava

Обрабатывается только оформление первого листа! При желании можно поправить и на остальные листы НО ЗАЧЕМ в оформлении второго листа все данные берутся из первого а если у вас несколько первых листов то тут может стоит подумать чтоб отказаться от такого метода!!! он изначально пагубен!!! и об этом не раз писали на форуме

Poltava


Ser Pavel

а чо это они у меня все первые? Ничо подоюного, 1,2,3 и т.д. и до 30-го и до 0-го бывало, просто я тем макрсом пользовался, он почему-то менял только на первом, а остальные не заимствовали с него, как буд-то свзяи рвались.

Poltava

Цитироватьменял только на первом, а остальные не заимствовали с него, как буд-то свзяи рвались.
А с чего вы вообще взяли что они когдато были или должны быть???
Хотя какие стили оформления вы  используете ??? Смею предположить что вы работаете в СПДС и относитесь к тем людям которые не читают рекомендаций и располагают все в одном файле на 30 ЛИСТОВ этож как он должен тормозить (обычно этим страдают автокадчики) Я прав ??? если нет тогда вернусь к вопросу А ЗАЧЕМ ВАМ ЭТО ПО КАКИМ ГОСТАМ???

Ser Pavel

Вы угадали. Работаю я на изготовлении КМД. И не раз уже были столкновения машиностроители vs строители. Дело в том что у меня в основной надписи принадлежноть идёт к конкретной группе изделия. Например балки для отметки +5,000. И соответсвенно по строительным нормам нумерация таких балок должна быть сковзная. Будут все балки занимать 5 листов значит лист 1 из 5 лист 2 из 5... лист 5 из 5. Будет 70 значит бутет лист 70 из 70-ти. и еслиделать каждый чертёж в новом файле.... то несколько сложновато вностиь изменения в основную надпись. То-же общее кол-во листов. Ведь до последнего чертежа незнаешь сколько точно эта группа изделий займёт листов.
Насчет автокада. Первая программа в которой я учился чертить на компьютере был компас 6 плюс. потом уже года через 2 переучивался чертить в автокад, чертил в акаде год и вернулся к компасу как к наиболее удобной программе для черчения, но нахожу теперь некоторые недостатки какие в акаде были более удобнгы, их мало - но они есть.

P.S. До 40-го листа ничего не тормозит, потом приходится дробить на 2,3 и т.д. файла, чо соотвественно вызывает определённые проблеммы.

Poltava

Ну вобщим примерно так я и предположил :)
Если у Вас есть желание, а у меня найдеться время! Момогу попробовать поколдовать над макросом но тогда от вас нужно больше информатции, а лучше файлик с примером оформления. И описанием того что вы хотите от макроса