Спецификация Компас : комментарии в конце документа

Автор firsttimer, 28.05.18, 15:05:15

« предыдущая - следующая »

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

ТрындецЪ

Цитата: dosart от 01.06.18, 10:53:02
Мне удалось получить содержимое разделов за два прохода по спецификации. Сначала я прохожу по ISpecificationSrctionStyles и получаю номер и наименование разделов. Потом я прохожу по iSpecificationObjects и получаю номер раздела, к которому принадлежит базовый элемент. Далее, сопоставляю полученную информацию. Можно обойтись одним проходом?

Номера разделов стандартного стиля известны заранее:
"Документация":5,
"Комплексы": 10,
"Сборочные единицы": 15,
"Детали": 20,
"Стандартные изделия": 25,
"Прочие изделия": 30,
"Материалы": 35,
"Комплекты": 40.

dosart

Я открываю спецификацию через кнопку, работа которой описана в подключаемой библиотеки. После открытия файла,  у меня появляется диалоговое окно: "Документ file_name не найден или не содержит описание спецификации file_name". Исключить документ из спецификации?"
Как мне сделать, чтобы это диалоговое окно не показывалось, а по умолчанию выбирался ответ "нет" ?

ТрындецЪ

Цитата: dosart от 06.06.18, 09:02:21
Я открываю спецификацию через кнопку, работа которой описана в подключаемой библиотеки. После открытия файла,  у меня появляется диалоговое окно: "Документ file_name не найден или не содержит описание спецификации file_name". Исключить документ из спецификации?"
Как мне сделать, чтобы это диалоговое окно не показывалось, а по умолчанию выбирался ответ "нет" ?

Попробуйте iApplication.HideMessage = 2

Sabahs

Только потом, его нужно в исходное положение вернуть, иначе Вы забудете вообще за диалоговые окна.
Если у Вас, есть вопросы, то их можно задать тут:
- "Оборудование: Развёртки";
- "Библиотека пакетного сохранения файлов".

dosart

Вот ещё такой вопрос у меня. Выбираюю данные из столбца "Наименование" следующим образом:
SpecificationColumns = iSpecificationObject.Columns
iSpecificationColumn = iSpecificationColumns.Column(5, 1, 0)   # 5 - колонка "Наименование"
iText = iSpecificationColumn.Text
text = iText.Str   


Скажем, в столбце наименование написано - "Планка". В столбце "Кол" - 4. Если я содержимое iSpecificationColumn.Text сохраняю в файл, то у меня слово "Планка" будет продублированно 4 раза. Как этого избежать?

И вот ещё такой вопрос. Предположим, у меня есть настольное приложение. Я из своего настольного приложения получаю указатель на KompasObject, и "скрытно" вызываю Компас. Моё приложение отработало, всё хорошо. Пользователь закрыл его. Но в "Диспетчере задач" по прежнему висит процесс Компас. Можно как то "гасить" Компас" ?

ТрындецЪ

Цитата: dosart от 06.06.18, 13:26:13
Я из своего настольного приложения получаю указатель на KompasObject, и "скрытно" вызываю Компас. Моё приложение отработало, всё хорошо. Пользователь закрыл его. Но в "Диспетчере задач" по прежнему висит процесс Компас. Можно как то "гасить" Компас" ?

KompasObject.Quit()

dosart

ТрындецЪ спасибо за ответ. А насчёт странного поведения при записи в файл. Не встречались с таким? Это у меня просто руки кривые?

ТрындецЪ

Цитата: dosart от 06.06.18, 13:54:56
А насчёт странного поведения при записи в файл. Не встречались с таким? Это у меня просто руки кривые?

С таким не встречался. Если text = iText.Str выдаёт одну "Планку", то ищите проблему в своём последующем коде.

dosart

ТрындецЪ, я видимо недоконца понимаю иеханизм работы с спецификацией.
Есть у меня строка в спецификации, которая расположена в разделе "Детали": ГЖ123 Планка 5. Где ГЖ123 - столбец "Обозначение". Планка - столбец "Наименование". 5 - столбец "Кол". Бегу я значит в цикле по базовым элементам(как писал в посте выше). Строка "ГЖ123 Планка 5" встретится ровно 5 раз. Может быть нужно задать какие-то параметры, чтобы бежать только по видимым строкам?

ТрындецЪ

Цитата: dosart от 08.06.18, 09:32:37
Есть у меня строка в спецификации, которая расположена в разделе "Детали": ГЖ123 Планка 5. Где ГЖ123 - столбец "Обозначение". Планка - столбец "Наименование". 5 - столбец "Кол". Бегу я значит в цикле по базовым элементам(как писал в посте выше). Строка "ГЖ123 Планка 5" встретится ровно 5 раз. Может быть нужно задать какие-то параметры, чтобы бежать только по видимым строкам?

Я так понимаю, у Вас 5 объектов спецификации, у которых в ячейке кол-во стоит "1", и КОМПАС сам суммирует кол-во, скрывая повторяющиеся ОС. Но по факту ОС с кол-вом = 5 нет. Поэтому, как я думаю,  Вам самому придется собирать уникальные обозначения и считать, сколько раз они встречаются  в СП.

Upd: Хотя нет, есть метод ksGetSpcObjectSummaryCount - Получить суммарное количество для одинаковых объектов

dosart

где посмотреть номера разделов стандартного стиля. В SDK не нашёл.

ТрындецЪ

Цитата: dosart от 06.02.19, 15:03:02
где посмотреть номера разделов стандартного стиля. В SDK не нашёл.

Они видны в режиме редактирования стандартного стиля СП в ручном режиме.

dosart

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

И ещё вопрос. Если у меня есть нестандартный раздел, то как получить его номер? Было бы здорово, зная имя такого раздела, получить его номер. Т.е. по имени "Переменные данные для исполнения" получить число.

ТрындецЪ

Цитата: dosart от 06.02.19, 16:40:57
ТрындецЪ,напишите, пожалуйста, куда нужно тыкать, чтобы узнать номера разделов.
И ещё вопрос. Если у меня есть нестандартный раздел, то как получить его номер? Было бы здорово, зная имя такого раздела, получить его номер. Т.е. по имени "Переменные данные для исполнения" получить число.

Номера разделов стандартного стиля:
5:'Документация',
10:'Комплексы',
15:'Сборочные единицы',
20:'Детали',
25:'Стандартные изделия',
30:'Прочие изделия',
35:'Материалы',
40:'Комплекты'

Как узнать номер раздела через оформление СП, см.скрин. (для нестандартного раздела тоже самое).
Второй вариант - узнать номер раздела программно, выделив ОС и применив ISpecificationObject.Section
Раздел СП - это свойство ОС, поэтому отдельного массива ОС "Деталей" или "Прочих изделий" нет.


333

У отображаемых объектов спецификации взведен признак ISpecificationBaseObject::Draw - Показывать объект
а суммарное количество можно получать через ISpecificationBaseObject::SummaryCount

333

Программно параметры стиля спецификации можно получить взяв
ISpecificationDescription::SpecificationStyle
Номер раздела
ISpecificationDescription::SpecificationStyle::Sections::Item::Number

 

Spas

Добрый день!
Подскажите, возможно  програмным путём объединение ячеек (колонок) в строке вспомогательного объекта спецификации?