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

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

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

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

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

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

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

Библиотеки kle и lfr

Автор MrBarry, 20.06.24, 09:05:43

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

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

MrBarry

Работаю с программой, которая рисует чертёж, опираясь на набор фрагментов. Сейчас они представлены кучей файлов .frw, что не слишком удобно. Хочется собрать всё в одну библиотеку и читать оттуда. И с этим возникает проблема. Компас v21 не хочет открывать библиотеки разрешения .kle, когда я их вызываю программой, вместо этого выдаёт ошибку (см. скрин ниже). Проблема с любой библиотекой формата .kle, включая стандартные, и только при чтении через код, если открывать в самом компасе, то всё ок.
С другой стороны, проблем с чтением библиотек формата .lfr не возникает, всё в порядке. Мне представляется 2 возможных решения проблемы:
1) Создать библиотеку формата .lfr, которая работает. Но редактор библиотек не согласен со мной, он умеет только в неработающие .kle
2) Научить Компас читать библиотеки .kle из кода. Как-то же он это делает когда я из самого приложения открываю их? Но я перепробовал кучу методов, ни один не заработал, упорно выдавая ошибку.

p3452

Цитата: MrBarry от 20.06.24, 09:05:432) Научить Компас читать библиотеки .kle из кода
К чему "учить, ученого"?
Компас умет читать ".kle", а ВАШ КОД - нет!

MrBarry

Цитата: p3452 от 20.06.24, 10:52:47Компас умеет читать ".kle", а ВАШ КОД - нет!
Это просто жонглирование словами, суть не поменялась...
Есть конструктивные мысли? Что-нибудь про метод, который сможет прочитать, про настройку, которую нужно включить, или что-либо иное, что поможет в решении вопроса?

p3452

Цитата: MrBarry от 20.06.24, 11:16:02Есть конструктивные мысли?
Для "конструктивных мыслей" нужна ОСНОВА, что бы было на что опереться!
- Где Ваш код?

MrBarry

Основа была расписана в вопросе - сама проблема, потенциальные пути решения, условия, при которых проблема возникает и при которых не возникает
Понятия не имею, зачем нужен неработающий код в данном случае, но вот:
ksFragment frag = (ksFragment)doc.GetFragment();
String path = "C:\\Programs\\Kompas 3D\\Libs\\ELECTRO.KLE|Маркировка упаковки|Верх";

ksPlacementParam par = (ksPlacementParam)kompas.GetParamStruct((short)StructType2DEnum.ko_PlacementParam);
par.Init();
par.xBase = x;
par.yBase = y;
par.scale_ = 1;
par.angle = 0;

int ref1 = frag.ksFragmentDefinition(path, "Name", 1);
frag.ksReadFragment(path, true, par);

int ref2 = frag.ksInsertFragmentEx(ref1, false, par, true);

Данный код работает при вставке фрагментов из отдельных файлов и из библиотеки lfr. Также пробовал ksReadFragment, тоже безрезультатно

p3452

Цитата: MrBarry от 20.06.24, 12:03:15String path = "C:\\Programs\\Kompas 3D\\Libs\\ELECTRO.KLE|Маркировка упаковки|Верх";
1 - "\\" - плохой стиль...
2 - "Верх" - добавте расширение файла !!!
3 - добавте проверки...

MrBarry

Цитата: p3452 от 20.06.24, 12:24:421 - "\\" - плохой стиль...
2 - "Верх" - добавте расширение файла !!!
3 - добавте проверки...


1) Плохой или нет - он работает.
2) см. прикреплённый скрин - обращение идёт по названию слева, а не по имени файла справа
3) Проверки чего? И ещё важнее - зачем?
Напомню об основах из первого сообщения - код отлично работает на отдельных фрагментах и на библиотеках другого формата. Все эти замечания - мелкие придирки. Если у вас нет идей по поводу решения, то не нужно пожалуйста копить количество сообщений, дайте людям с конструктивными мыслями высказаться

p3452

Цитата: MrBarry от 20.06.24, 12:33:55Напомню об основах из первого сообщения - код отлично работает на отдельных фрагментах и на библиотеках другого формата. Все эти замечания - мелкие придирки. Если у вас нет идей по поводу решения, то не нужно пожалуйста копить количество сообщений, дайте людям с конструктивными мыслями высказаться
Вам "черным по белому" написали
1 - добавьте расширение файла!
2 - добавьте проверки (если не заработает, после добавления расширения файла)!
- Не надо ДРУГИМ ничего доказывать - ПРОБЛЕМЫ У ВАС!

feron

#8
Слова -> не что! покажите мне исходник!  :bebebe:

MrBarry

#9
Цитата: p3452 от 20.06.24, 13:38:01Вам "черным по белому" написали
1 - добавьте расширение файла!
Хоть синим по коричневому, это просто-напросто неправда. Я проверял, уже давно.
Если бы проблема была в том, что я не написал расширение файла, не работала бы никакая библиотека, а я, напомню ещё раз, .lfr отлично работают.
Повторю ещё раз - пожалуйста, хватит писать, если кроме "нужно расширение и проверки" нет мыслей в чём проблема. Ибо это всё не поможет даже близко. И орать наподобие
Цитата: p3452 от 20.06.24, 13:38:01- Не надо ДРУГИМ ничего доказывать - ПРОБЛЕМЫ У ВАС!
...выставляя собеседника недалёким, хотя именно ваши советы ничего не приносят. Человек, который может знать в чём проблема, может просто взять и закрыть тему, увидев всё это выше. Если будете настаивать на тех же советах и дальше, я уже не буду отвечать, ибо смысла не вижу продолжать
UPD: прикрепляю цитату из справки SDK Компаса. Там "черным по белому" написали, как нужно писать путь к файлу:



MrBarry

#11
Ещё раз напомню известные факты:
1) Не работают только файлы .kle из новых версий Компаса. Следствие: проблема в целом с этим разрешением, не ошибкой в уже написанном коде. Он верен, просто для старых версий
2) Компас умеет открывать эти файлы как библиотеки, если делать это не функциями, а руками в самом Компасе. Следствие: решение скорее всего существует, просто на поверхности в справочнике оно не лежит
3) Решение это принципиально новый подход, а не исправление чего-то в уже существующем коде.

Если привести сравнение, то мой код это Лада Калина, которая свои функции хорошо выполняет и всё с ней хорошо. А задача передо мной - ездить по пересечённой местности, для чего мне нужен внедорожник. И замена масла, шин, чистка двигателя это, безусловно, вещи полезные, но вот с задачей превращения Калины в Ланд Крузер не помогают от слова совсем. Потому что нужно просто заменить машину и всё
Заменить машину - написать другой код, который с этой задачей справится. И я очень жду помощи хороших людей, которые действительно знают в чём заключаются проблема и её решение

p3452

MrBarry, Ваше "ЭГО" Вам здорово мешает...

Вставка фрагмента из kle.png

MrBarry

Цитата: p3452 от 21.06.24, 10:16:20MrBarry, Ваше "ЭГО" Вам здорово мешает...
Во-первых, спасибо за конструктив
Во-вторых, вынужден разочаровать, моё эго видимо ещё и на Компас влияет. Скопировал код в точности (было бы удобнее если бы он был не скрином, но неважно), изменилось ровно ничего.

p3452

Цитата: MrBarry от 21.06.24, 10:43:19моё эго видимо ещё и на Компас влияет
За Компас - не скажу, но на мозги - точно ДАВИТ...

Вы знаете, что такое "монопольный доступ"?
Ваш файл библиотеки чем-то блокируется...
1. Проверьте права доступа к файлу.
2. Любое открытие (даже временное) Редактора библиотек блокирует файл библиотеки (особенно если Компас открыт).
3. Нельзя просматривать библиотеку через редактор и работать, с ней, через API.
4. Рецепт для чистого теста:
- перезагрузите компьютер
- откройте Компас (пустой)
- в Компасе создайте файл-фрагмент
- запустите КОД.

MrBarry

Цитата: p3452 от 21.06.24, 11:31:12За Компас - не скажу, но на мозги - точно ДАВИТ...
А прикиньте вам бы в каждом сообщении писали что-то наподобие
Цитата: p3452 от 20.06.24, 10:52:47К чему "учить, ученого"?
Цитата: p3452 от 20.06.24, 13:38:01Вам "черным по белому" написали
Цитата: p3452 от 20.06.24, 13:38:01ПРОБЛЕМЫ У ВАС!
И постоянно подчёркивали фразы, где ВЫ ВЫСТАВЛЯЕТЕСЬ НЕДАЛЁКИМ
Как хорошо, что мы с вами не такие, и не давим друг на друга вместо спокойного обсуждения вопроса, правильно?

Да, я тоже наезжал, но уже в ответ на первые сообщения, где вы просто придирались к словам, а начал настолько конструктивно, как мог. Некоторые люди на этом форуме только этим и промышляют, потому после первого же подобного сообщения я уже настроился негативно. Признаю, был неправ, но не без причины!

Цитата: p3452 от 21.06.24, 11:31:12Ваш файл библиотеки чем-то блокируется...
1. Проверьте права доступа к файлу.
2. Любое открытие (даже временное) Редактора библиотек блокирует файл библиотеки (особенно если Компас открыт).
3. Нельзя просматривать библиотеку через редактор и работать, с ней, через API.
4. Рецепт для чистого теста:
- перезагрузите компьютер
- откройте Компас (пустой)
- в Компасе создайте файл-фрагмент
- запустите КОД.

Вот за это спасибо большое. Перезагрузил компьютер и в процессе вспомнил, что здесь, на рабочем компьютере, я не в администраторском профиле. Когда зашёл в него, всё сработало как должно. Дело таки было в доступе к файлам.

p3452

Цитата: MrBarry от 21.06.24, 11:51:41Дело таки было в доступе к файлам.
ЭТО выяснилось бы СРАЗУ (без "бухтения" !), если бы Вы выполнили п.3 из поста №5!

p/s: Что бы быть последовательным...
По поводу п.2 из поста №5 - Вы убедились, что КОД - РАБОЧИЙ, теперь уберите расширение файла (.frw), и... запустите КОД !?