Перейти к публикации

Вопросы новичка


ForgottenGood

Рекомендованные сообщения

Подскажите, пожалуйста, как изменить выражение при выборе инструмента из базы, чтобы Эсприт искал его в определенной группе инструментов, а не только по диаметру? сейчас использую такое выражение: GetToolById(GetToolbyDiameter(espToolMillDrill, Feature.Diameter, True,, "DR%"))

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...


Добрый день . Подскажите, можно ли в Esprit 2020, обработать открытый контур на наружном диаметре, с постоянным заглублением фрезы. Как на картинке. Или есть иной способ обработать паз мерной фрезой с постоянным заглублением.

D200-L100.jpg

D200-L100.esp

Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...

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

 

 

2023-09-04 09_58_58.png

202.esp

Изменено пользователем Dmitry21
Ссылка на сообщение
Поделиться на других сайтах
Алексей из Курска
6 часов назад, Dmitry21 сказал:

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

 

 

2023-09-04 09_58_58.png

202.esp 123 \u041a\u0431 · 0 скачиваний

Игнорируй

Hard вызывается всегда в этом месте, особенность работы постпроцессора

Ссылка на сообщение
Поделиться на других сайтах
48 минут назад, Алексей из Курска сказал:

Игнорируй

Hard вызывается всегда в этом месте, особенность работы постпроцессора

а с постом не подскажете как извернуться, чтобы дублирования не было? без вызова technology change не меняются режимы на чистовой проход

 

ex_TechnologyChange : BlankLine
                    : N*                                                            
                    : MISCSYMBOLICCODE3  "FINISH" MISCSYMBOLICCODE3
                    : G00 X*(XLast) Z*(ZLast) 
                    : $SpindleRotation* FeedRateCode* 
                    : BlankLine

 

 

Ссылка на сообщение
Поделиться на других сайтах
Алексей из Курска
4 минуты назад, Dmitry21 сказал:

а с постом не подскажете как извернуться, чтобы дублирования не было? без вызова technology change не меняются режимы на чистовой проход

 

ex_TechnologyChange : BlankLine
                    : N*                                                            
                    : MISCSYMBOLICCODE3  "FINISH" MISCSYMBOLICCODE3
                    : G00 X*(XLast) Z*(ZLast) 
                    : $SpindleRotation* FeedRateCode* 
                    : BlankLine

 

 

Я в токарных постах не очень

Попробуй режимы перенести в ex_startpoint (вроде так)

Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, Алексей из Курска сказал:

Я в токарных постах не очень

Попробуй режимы перенести в ex_startpoint (вроде так)

у меня заданы режимы в ex_startpoint, но только в нужном месте вызывается не он, а TechnologyChange) ладно, спасибо за ответ, буду думать дальше

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Итак. есть строка в постпроцессоре

:  N G43* H*(PRESENTTOOL) Z*

Хочу чтобы Z бралась из переменной 

:  N G43* H*(PRESENTTOOL) "Zclstring(443)"

Она берётся. НО. Выдаёт незначащие нули после точки вопреки тому что остальные координаты выводит как надо

G43 H01 Z20.000000
G99 G73 Z-15. R2. Q2. I10. K5. F600
Y117.5
Y50.
X280. Y7.5

как отключить их вывод?

Ссылка на сообщение
Поделиться на других сайтах
04.09.2023 в 18:02, Dmitry21 сказал:

а с постом не подскажете как извернуться, чтобы дублирования не было? без вызова technology change не меняются режимы на чистовой проход

 

ex_TechnologyChange : BlankLine
                    : N*                                                            
                    : MISCSYMBOLICCODE3  "FINISH" MISCSYMBOLICCODE3
                    : G00 X*(XLast) Z*(ZLast) 
                    : $SpindleRotation* FeedRateCode* 
                    : BlankLine

 

 

Попробуй просто "*" убрать в SpindleRotation и FeedRateCode убрать. 

10.11.2023 в 13:09, maxx2000 сказал:

Итак. есть строка в постпроцессоре

:  N G43* H*(PRESENTTOOL) Z*

Хочу чтобы Z бралась из переменной 

:  N G43* H*(PRESENTTOOL) "Zclstring(443)"

Она берётся. НО. Выдаёт незначащие нули после точки вопреки тому что остальные координаты выводит как надо

G43 H01 Z20.000000
G99 G73 Z-15. R2. Q2. I10. K5. F600
Y117.5
Y50.
X280. Y7.5

как отключить их вывод?

 

В описании переменных нужно поставить в этих местах N (для дюймов и метрических), чтобы незначащие нули отбросить. Подробнее можно по "FORMATABLE CODES" в справке по постпроцессорам поискать.

image.png

Ссылка на сообщение
Поделиться на других сайтах

@Фолко да так и есть. Я же говорю что незначащие нули только если брать значение из переменной

Ссылка на сообщение
Поделиться на других сайтах
10.11.2023 в 13:09, maxx2000 сказал:

Итак. есть строка в постпроцессоре

:  N G43* H*(PRESENTTOOL) Z*

Хочу чтобы Z бралась из переменной 

:  N G43* H*(PRESENTTOOL) "Zclstring(443)"

Она берётся. НО. Выдаёт незначащие нули после точки вопреки тому что остальные координаты выводит как надо

G43 H01 Z20.000000
G99 G73 Z-15. R2. Q2. I10. K5. F600
Y117.5
Y50.
X280. Y7.5

как отключить их вывод?

А, не дочитал. 

Выводить в таком случае лучше через MISCFORMAT, что-то вроде этого:

MISCFORMAT6          : Z_     Y 1 Y N 4     Y 1 Y N 3     0     1 N 0 0

:  N G43* H*(PRESENTTOOL) Z_*(NextCLFile(443))

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Добрый день!

Можете объяснить начинающему, то есть мне?

 

Я использовал ESPRIT только для 3-х координатной обработки и не знал проблем.

НО вот дали задание написать на 5-осевой станок. (модель Spiner U5-620 comact)

И программа выдает мне радостное сообщение:

"Невозможно достичь этой позиции (нужна другая ось вращения)"

Как я подозреваю, это происходит потому, что я нигде не прописал характеристики станка.

И программа просто не знает по каким осям поворачивать деталь и какие при этом есть ограничения?

Просветите начинающего, где и как правильно решить этот вопрос.

Лучше с картинками, если возможно. :smile:

Ссылка на сообщение
Поделиться на других сайтах

Всё верно, нужно описать кинематику станка. 

На рутрекере есть ESPRIT Training Tutorials , начни с этого

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
22.12.2023 в 00:55, defineMSG сказал:

https://transfiles.ru/phfuw

Вот руководство для создания моделей станка.

https://dropmefiles.com/yNUEs
Добавил тренировочные файлы

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
22.12.2023 в 00:55, defineMSG сказал:

https://transfiles.ru/phfuw

Вот руководство для создания моделей станка.

а можете еще раз выложить, пожалуйста?

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Простой казалось бы вопрос. Вывод имени файла в начале программы.

Дано. EDM обработка.

EspritName вывод полный путь к файлу . Как подрезать только до имени файла?

SETORIGINCOMMENT выводит комментарий, ну так себе копипастить туда название файла. 

PROGRAMNAME  вроде вот оно, то что надо но вместо него (имени файла) пишет NA .

 

В идеале надо в шапку вывести следующее.

 

Название детали, материал, дата и время, автор творения.

 

Кто как решил такую задачу?

 

Ссылка на сообщение
Поделиться на других сайтах
13.02.2024 в 12:51, maxx2000 сказал:

Простой казалось бы вопрос. Вывод имени файла в начале программы.

Дано. EDM обработка.

EspritName вывод полный путь к файлу . Как подрезать только до имени файла?

SETORIGINCOMMENT выводит комментарий, ну так себе копипастить туда название файла. 

PROGRAMNAME  вроде вот оно, то что надо но вместо него (имени файла) пишет NA .

 

В идеале надо в шапку вывести следующее.

 

Название детали, материал, дата и время, автор творения.

 

Кто как решил такую задачу?

 

PROGRAMNAME берёт имя не из названия файла, а из установок станка.

В справке по постам есть такой вариант, если надо взять именно имя файла:

Variable     : FileName

ex_StartCode : FileName=(ESPRITName)
             : While (InString(FileName,"\"))
             :    FileName=(MidString(FileName,2))
             : EndWhile
             : If (RightString(LowerCaseString(FileName,4))=".esp")
             :    FileName=(LeftString(FileName,StringLength(FileName)-4))
             : EndIf
             : OutputString(gpCHR(034) + FileName + gpCHR(034))

 

Или есть переменная для имени NC файла - NCFileName

 

Стандартное поле для материала я не помню, только если самому придумать, что в этом поле (например custom string какой-нибудь) материал, и оттуда его выводить.

 

Дата и время - TIMESTAMP

 

Поле для автора вроде есть, но доступ к нему из поста я не нашёл, видимо действовать как с материалом.

 

Ссылка на сообщение
Поделиться на других сайтах

@Фолко Спасибо.

Конечно странновато что в справке сделали пример именно про имя файла, но не сделали просто отдельную команду. :wallbash:

 

В принципе NCFileName нормально выводит. В маску имени файла добавить дату и будет то что надо.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • SAPRonOff
      https://dzen.ru/b/ZjnRssPLbUcXVOUZ
    • davidovka
      Creo 9, VS 2019 (v142). Если использовать стандарт языка С++14, все собирается работает. При переключении на C++17 - ошибки (см. скрин - тестовое приложение из папки Creo) Хотел в проекте использовать <filesystem>
    • maxx2000
    • ДОБРЯК
      Нулевых частот может быть любое количество. Вот эта матрица не будет вырождена.    
    • Orchestra2603
      Речь идет о собственных векторах, связанных с нулевым СЗ. Вы же понимаете.
    • ДОБРЯК
      Для сложных систем их может быть и 100 и 200 и 1000...
    • maxx2000
      @Artas28так надо рецепт в массы нести, а то Ванёк ничему не научится
    • Orchestra2603
      Выкидываем не в смыле, что мы ее вырезаем.. Простите мне эту вольность)) Просто там две одинаковые строки. Достаточно рассмотреть только одну. Нет смысла хранить вторую строку в матрице, поскольку она ничего не привносит. Вы можете совершенно формально взять полученный i-й собственный вектор, умножить на матрицу K-lambda_i*M и получиь нулевой вектор.   На самом деле.. Мне прям пришлось прям подумать над аналогией с включением закрепления в статике. И это было полезно и интересно. Так что вам спасибо за "подгон", что называется )) Но все-таки разница есть ...   Вот у вас в статике:   И здесь действительно получается, что если мы зафиксируем, например, положив a=0, то это будет эквивалентно "выкидыванию" 1-го стобца и 2-й строки, и решению уже такой модифицированной невырожденной системы *в данном случае вообще тривиальной). При этом f2 просто станет узловой реакцией и определится как -f1 автоматически: К слову, можно положить любой a, не только нулевой. Результат будет такой же для сил, но прогибы, ясное дело, поменяются.   Но это отличается от нашей задачи на собственные значения. У нас нет внешних сил {f}.  А знaчит и упругие силы [K]{x} в системе должны быть равны нулю. И для нулевой собственной частоты мы по сути ищем такой набор перемещений, при которых в системе отсутствуют упругие силы.  И таких наборов перемещений бесконечно много. Вообще говоря, для трехмерных более сложных систем оказывается, что существует до 6-ти базисных векторов (понятно, что связанных с движениями как твердого целого), и любая линейная комбинация из этих векторов будет решением такой задачи. Но нам не нужно само решение! Нам нужен как раз сам базис пространства решений! Причем, сами вектора в этом базисе нас интересуют с точностью до множителя, ь.е. таких базисов можно напридумывать бесконечно много. Но нам нужен толкьо какой-то один базис, и всего-то. В этой простейшей задачке - это просто один вектор  {1, 1}. Можно взять {2,2} или {e,e} - не имеет значения, нас любой из них строит. И нам этого достаточно.    Обратите внимание, что этот вектор нельзя получить из задачи статики, где {f} ≠ {0}, положив какое-то значение для a, т.е. внедрив какое-то "закрепление" в вашей интерпретации.  Пожтому я убежден, что это другая задача, т дело тут не в закреплениях.   Не понимаю, про какую вы матрицу
    • Viktor2004
      Туда вроде наоборот заносится значение какое-то, но не считывается Смотрю чужие программы, там вроде только 8549 используют. При чем у них в программах циклы поболее моих, которыми я круги чертил O4198 ; #500=#8549 ; IF[ #8549 EQ 0 ] THEN ; #10409=0 ; ENDIF ; IF[ #8549 EQ 134 && #10409 EQ 0 && #10422 NE 0 ] THEN ; #10409=1 ; #10422=FIX[#10422 / 10] ; #10427=1 ; ENDIF ; IF[ #8549 EQ 48 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 0 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 49 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 1 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 50 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 2 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 51 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 3 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 52 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 4 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 53 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 5 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 54 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 6 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 55 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 7 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 56 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 8 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 57 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 9 ; #10427=1 ; ENDIF ; IF[ #10422 GT 9999 ] THEN ; #10422=FIX[#10422 / 10] ; ENDIF ; IF[ #500 EQ 249 && #8500 EQ 4170 ] THEN ; #8500=4601 ; M99 ; ENDIF ; IF[ #500 EQ 240 ] THEN ; IF[ #8500 EQ 4174 || #8500 EQ 4173 || #8500 EQ 4177 ] THEN ; #8500=4170 ; M99 ; ENDIF ; IF[ #8500 EQ 4178 ] THEN ; #8500=4170 ; M99 ; ENDIF ; ENDIF ; IF[ #500 EQ 248 && #8500 EQ 4170 && D34.0 NE 0 ] THEN ; #8500=4174 ; M99 ; ENDIF ; IF[ #500 EQ 247 && #8500 EQ 4170 && D30.4 EQ 1 && D29.6 EQ 0 ] THEN ; #8500=4175 ; M99 ; ENDIF ; IF[ #500 EQ 246 && #8500 EQ 4170 && D35.0 EQ 1 && D35.4 EQ 1 ] THEN ; #8500=4178 ; M99 ; ENDIF ; IF[ #8549 EQ 152 && #10409 EQ 0 && #10422 EQ 5656 ] THEN ; #8500=4177 ; M99 ; ENDIF ; M99 ;  
    • nicomed
      Как победить проблему с блокированием сегментов эскиза не знаю. Поэтому пока полумеры... Ввел активацию чертежного листа после разрыва линии. Для разблокирования сегментов после закрытия программы двойным кликом активировать чертежный вид, где надо двигать сегменты эскиза. Добавил настройки. Можно настроить величину генерируемого зазора в  файле options.xml. По толщине и стилю линии, если кто подскажет как прочитать стиль и толщину выбранной кромки ( силуэтной кромки), то тогда можно будет "напосмотреть".   Пару раз натыкался на такой глюк - остается только один сегмент эскиза, грешу на рассинхронизацию работы солида и приложения. EdgeTrim_v3.3.zip
×
×
  • Создать...