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

Параметры инструмента в 840D


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

В программе используется параметр $TC_DP3[$P_TOOLNO,1]. 

В Tool Table загружены инструменты с произвольными номерами. Макрос AutosetToolManLength840DVars сохраняет все длины инструментов в параметры $TC_DP3[N,1], при этом N принимает значения порядкового номера инструментов в таблице (от 1 до общего количества инструментов в таблице). А нужно, чтобы N принимала значения фактических номеров инструментов в таблице. Т.е. если в таблице есть только 3 инструмента с номерами 15, 27, 31, то на выходе нужно получить только три параметра

$TC_DP3[15,1],

$TC_DP3[27,1],

$TC_DP3[31,1],

вместо 

$TC_DP3[1,1],

$TC_DP3[2,1],

$TC_DP3[3,1].

 

Как это можно реализовать?

Можно, конечно, вставить инструменты-пустышки, чтобы инструменты с нужными номерами стояли на правильных местах, но это не выход.

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


8 часов назад, DJ Astro сказал:

В Tool Table загружены инструменты с произвольными номерами.

Так может нужен номер в магазине?

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

$P_TOOLNO разве определяется не как идентификатор инструмента текущий?

В стойке sin840d.ctl по крайней мере так.

Если у меня в УП

T11

или

T="11"

то он видит параметр $P_TOOLNO равный номеру этого инструмента.

На всякий случай попробуйте прописать в настройках стойки так, как на картинке.

Ну или проект кидайте - будет время, погляжу.



2019-03-04_121807.PNG

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

$P_TOOLNO разве определяется не как идентификатор инструмента текущий?

В стойке sin840d.ctl по крайней мере так.

Если у меня в УП

T11

или

T="11"

то он видит параметр $P_TOOLNO равный номеру этого инструмента.

На всякий случай попробуйте прописать в настройках стойки так, как на картинке.

Ну или проект кидайте - будет время, погляжу.

 

Да, всё правильно, $P_TOOLNO работает и определяется как ID текущего инструмента. Но загрузив, например, в таблицу единственный инструмент с номером "15", я ожидаю получить значение его длины в параметре $TC_DP3[15,1] (как это происходит в реальном станке), но Vericut это значение сохранит в $TC_DP3[1,1], а $TC_DP3[15,1]=0.

Если у вас будет возможность, попробуйте на стандартной 840й стойке из библиотеки vericut'a.

 

В хэлпе про макрос есть такая инфа

-2--1.thumb.jpg.51e162c4d096a268e10d5a0156037b9c.jpg

 

у меня и Tool Chain'a нету и все методы смены инструмента перепробовал в "Tool Change By..." - всё равно эти переменные нумеруются подряд не зависимо от номера инструмента.

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

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

Сделать так у меня уже не получится, у нас версия 8.2.1

 

В версии 7.4.2 появился макро, который отвечает за автоматическую расстановку оффсетов.

 

AutosetToolManOnOff

Function — VARIABLES

Status — ACTIVE

Comment — Added V7.4.2

Inputs 

Text: Not used

Value: 0 = Off, 1 = ON

 

This macro enables (ON) and disables (OFF) the AutosetToolMan macros.

 

Currently we are seeing a performance hit during load time associated with the AutosetToolMan macros.  Until the performance issue can be address, this macro can be used to disable these macros if the variables are not being used.  It should be called during the Reset event.  When performance improves, this macro will be OBSOLETE.

Может подобный есть макро в версии 7.1.3?Если его создать и присвоить значение равное единице, то в переменные $TC_DP значения будут занесены автоматически из активного инструмента. И тогда все будет работать.

В сочетании с AutosetToolManLength840DVars и значением: $TC_DP3 Z про который Вы писали это проставит значения в таблицу нужным образом (см картинку).

 

Чтобы это реализовать иначе, нужно думать, каким образом создать такую переменную. Или писать какую-нибудь подпрограмму, которая будет вызываться при смене инструмента.

2019-03-06_092907.PNG

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

вы используете версию 7.1.3.

Нет, это из хэлпа от 7.4.1.

 

Проблема в том, что в 7.4.1 нет связи между номером инструмента (ID) и номером строки (Index) в которой он находится в ToolManager'e.

В 8.2.1 это уже работает: в SetDynamicVars вместе с параметром CurTool теперь есть CurToolIndex.

 

***************

CurToolIndex # — The current tool index will be set in the specified variable. The tool index is defined as the nth tool within toolman. If the current tool is the 5th tool listed within toolman, the specified variable will be set to 5.

Example:

Override Text value = CurToolIndex $P_TOOLNO

 

CurTool # — The current tool number will be set in the specified variable. The tool number will be as defined before any tool indirection, such as can occur when a Tool List is in use.

***************

 

И я не смог в 8.2.1 добиться такого же результата, как на вашем примере. Вызываю 18-й инструмент, который стоит в 6-й строке таблицы инструментов.

AutosetToolManOnOff уже был прописан в 840й стойке, которая идёт с этой версией вериката, но почему-то в ветке Start of Processing. Хотя в мануале пишут, что должно быть в Reset. Добавил и туда - не помогло. 

 

 

2221.jpg

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

Кидайте проект. Можете в личку ссылку прислать на скачивание. Сделаю, думаю что. Только что прикрутил измеряшку для цикла CYCLE974 токарного станка, которого пока еще нет в стандартном пакете VERICUT, попа пляшет =)

Ссылка на сообщение
Поделиться на других сайтах
В 07.03.2019 в 09:17, s_liam сказал:

Кидайте проект. Можете в личку ссылку прислать на скачивание. Сделаю, думаю что.

Отправил в ЛС.

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

Поглядел проект, повозился с ним. Потом в свои поглядел - действительно расставляет просто по порядку. В описании макро написано, что если не создано механизма смены или не используется специальная смена инструмента. Макро может быть и как в Reset и как в Начале процесса. Суть не в этом. Почему-то вот таким образом у него это работает. Можно, конечно, попробовать в поддержке спросить, почему так...

Автоматически, получается, в данный момент это дело не расставить.

Тогда зайдем с другого бока. Насколько это нужно и для чего? Ну в том смысле, понятное дело, если бы это работало - было бы замечательно это использовать.

Но раз так не получается, придется пока что придумать альтернативное решение. А это уже будет зависеть от того, что нужно в итоге иметь.

Хотя, может и верное описание макро.

Сейчас еще поглядел.

Переменная системная CurToolindex равняется порядковому номеру в библиотеке инструмента.

Надо подумать, как сделать так, чтобы все было как нужно.

Изменено пользователем s_liam
Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем s_liam
Ссылка на сообщение
Поделиться на других сайтах

Я предлагаю Вам следующее решение.

В файл подпрограмм станка dixi_dhp80.spf в самый конец добавляете следующее:

 

PROC D_SPEC
$TC_DP3[CurrentToolNum,$P_TOOL] = $P_TOOLL[1]
RET

 

В стойку в регистр D добавляете вызов подпрограммы D_SPEC (смотри картинку).

После вызова активного корректора произойдет вызов подпрограммы, в которой параметр $TC_DP3 с индексом активного номера инструмента и номером активного корректора станет равным длине этого инструмента.

 

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



2019-03-11_153436.PNG

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

$TC_DP3[CurrentToolNum,$P_TOOL] = $P_TOOLL[1]

Я уже думал о таком, но Vericut ругается на попытку переопределения таким образом этих сименсовских параметров среди макросов в G-code processing. ("Error: Invalid array index for variable $TC_DP3").

А, вот, запихнуть это в spf стойки, как процедуру, я не сообразил. Теперь буду знать, что так тоже можно.

 

Да, конечно же, этот вариант работает.

@s_liam, Спасибо!! :clapping:

 

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

Да, тут вся сложность в том, что переменная имеет два адреса. И нужно каким-то образом их предопределить. Самый простой - взять активный ID адрес инструмента и корректора. Я сначала хотел предопределить это сразу в подпрограмме L300 после M106 - внутренней команды смены инструмента, но здесь еще неактивен корректор D. Поэтому пришлось это перенести в D регистр, после того, как определится номер активного корректора и инструмента, а вместе с этим и текущие значения соответствующих переменных.

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

Нашёл ещё более простое решение - в разделе Substitute просто заменил $TC_DP3[$P_TOOLNO,1] на $P_TOOLL[3], и всё.:biggrin:

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Kelny
      Если этой ссылки достаточно для отображения материала и материал уже есть в обозначенной модели, то возможно подойдёт TabBuilder: https://help.solidworks.com/2023/russian/SolidWorks/SWHelp_List.html?id=e68c1877b4fa431483f8c751bd9fcc78&_gl=1*lby1j3*_up*MQ..*_ga*NTEyNjA5NDQ3LjE3MTQxMTU3MzA.*_ga_XQJPQWHZHH*MTcxNDExNTcyOS4xLjEuMTcxNDExNTczNy4wLjAuMA..#Pg0   В старых версиях при написанни ссылок такого радо в некоторых случаях можно было не писать имя файла, а достаточно было вместо имени файла модели оставить ПРОБЕЛ.SLDPRT и имя после этого подставлялось само. Пробовать надо.   Так же можете глянуть макрос по изменению свойств файла (методы и функции там устаревшие, но возможно даже будет работать и можно поковыряться в коде): https://kelnyproject.ucoz.ru/load/6-1-0-8 по програмированию так же есть справка (версию в ссылке поменяйте на свою, что бы справка была актуальна для вашей версии): https://help.solidworks.com/SearchEx.aspx?query=get custom property&version=2010&lang=english,enu&prod=api
    • gudstartup
      только перед обновлением обязательно выполните  все что написано в руководстве и касается сохранения состояния станка и чпу. и обязательно сделайте образ диска и помните что слишком новые версии могут не заработать на вашем чпу относительно безопасно ставить только сервиспаки
    • NordCom
      Большое спасибо! Через это меню удалось зайти в меню. 95148->MOD
    • Danil89nur
      Доброе время суток. Столкнулся с проблемой на новой работе. Много деталей у который в свойствах отсутствует раздел "Материал" и приходится каждый раз вручную заходить туда, создавать раздел и выбирать там ""SW-Material@Name.SLDPRT". Возможно кто-то знает, либо сможет помочь с написанием простенького макроса, при нажатии на который в свойствах детали будет создаваться необходимый раздел и в нем сразу написан выбранный материал (желательно, чтоб там было указано сразу наименование материала, а не формула для его получения ""SW-Material@Name.SLDPRT"). Пытался самостоятельно через ChatGPT, но так как в програмировании я 0, то ничего не получилось)
    • Bot
      Коллеги, Благодарю вас за интерес к проекту электронной энциклопедии в области инженерного программного обеспечения PLMpedia, который более 15 лет развивался группой компаний ЛЕДАС. Представленный ниже скриншот передаёт содержание и структуру базы данных энциклопедии, накопленной за эти годы: именно такую начальную страницу, можно было до сегодняшнего дня увидеть, придя по адресу https://plmpedia.ru/ В последние несколько лет ЛЕДАС особенно интенсивно и результативно вкладывает все ресурсы в развитие своего основного бизнеса: см. ниже «О компании ЛЕДАС». Сегодня я с некоторым сожалением констатирую, что у компании ЛЕДАС более нет возможности отвлекать ресурсы своих сотрудников на некоммерческий (фактически волонтерский) проект PLMpedia. Вся база данных ресурса может быть безвозмездно передана любому юридическому или физическому лицу с единственным условием: наш преемник должен будет публично объявить о состоявшейся передаче и взятии на себя [...] View the full article
    • gudstartup
      @NordCom  у вас наверное это так происходит читайте этот раздел itnc_530.pdf
    • fenics555
      интересный индус. А нового то чего?
    • gudstartup
      откудова качаете мне интересно?
    • ДОБРЯК
      Совсем забыл про собственные вектора       собственный тон частота           0.013                        1   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00       собственный тон частота       15910.75                         2   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2  -7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00        
    • gudstartup
      так я это и написал
×
×
  • Создать...