ЧПУ и K3

Модераторы: Лабутин Сергей Евгеньевич, Алек(андр

Re: ЧПУ и K3

Сообщение Ручей » 16 июл 2013 15:08

Да, читал же, что зависит от регистра и отступов.
Спасибо, Александр
Ручей
 
Сообщения: 887
Зарегистрирован: 15 июл 2011 19:55

Re: ЧПУ и K3

Сообщение Ручей » 31 июл 2013 09:36

Теперь перестала работать переменная VARIANTPATH = 1 # 0-без кромки 1-с кромкой. Вычитается кромка из размера.
_____________________________________________________________________________________________________________
На этой детали убрал кромку. В результате две ошибки:
1. Как раньше, габарит детали берётся от габарита выреза
2. Выдаёт ошибку в сообщении "В базе данных нет информации о параметрах обработок."
Вложения
ID2.zip
(89.96 Кб) Скачиваний: 122
Ручей
 
Сообщения: 887
Зарегистрирован: 15 июл 2011 19:55

Re: ЧПУ и K3

Сообщение Алек(андр » 31 июл 2013 12:44

Суть в том что в данном случае в вашем примере, нет кромки на внешнем контуре. берется второй контур с конца списка отсортированного по площадям габаритов контура, а это вырез.
Надо как то отличать есть на внешнем контуре кромка или нет. по идее это свойство is_plane_path.

Итак:
учитываем VARIANTPATH 0-без кромки 1-с кромкой
Если 0 габарит заготовки берется по большему контуру по полотну панели
Если 1 габарит заготовки берется по большему контуру с учетом внешнего габарита кромки

панель 400х298 при VARIANTPATH = 1 приходит 400х298 не важно есть на ней кромка или нет
панель 400х298 при VARIANTPATH = 0 приходит 400х298 если кромки нет и 396х294 если по периметру есть кромка 2 мм

все вырезы так же приходят с учетом кромки
Аватара пользователя
Алек(андр
 
Сообщения: 1202
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: ЧПУ и K3

Сообщение Алек(андр » 31 июл 2013 13:02

Очередной вариант

сообщение "В базе данных нет информации о параметрах обработок." Это не ошибка.
Просто в Вашем файле нет обработок. Вообще нет и соответственно в базе нет.
Стало быть не формируется информация по обработкам.
Если вдруг появится кромка, то и сообщение исчезнет.
Вложения
CNC.ZIP
(10.54 Кб) Скачиваний: 131
Аватара пользователя
Алек(андр
 
Сообщения: 1202
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: ЧПУ и K3

Сообщение Ручей » 31 июл 2013 13:28

Сейчас вроде работает. Благодарю!
Ручей
 
Сообщения: 887
Зарегистрирован: 15 июл 2011 19:55

Re: ЧПУ и K3

Сообщение ZInovich » 27 ноя 2013 20:59

И все же, как сменить базовый угол с 1го на 4й ? Пробовал разворот детали описанный ранее (если я все правильно сделал),но у меня иногда деталь становиться пазом по Y.
Возможно ли объединение сверловки A и F в один файл, как в вудвоп при помощи условий nonmirror и mirror ?
ZInovich
 
Сообщения: 36
Зарегистрирован: 27 ноя 2013 20:36

Re: ЧПУ и K3

Сообщение Ручей » 28 ноя 2013 07:48

ZInovich писал(а):И все же, как сменить базовый угол с 1го на 4й ? Пробовал разворот детали описанный ранее (если я все правильно сделал),но у меня иногда деталь становиться пазом по Y.
Возможно ли объединение сверловки A и F в один файл, как в вудвоп при помощи условий nonmirror и mirror ?

Кстати, как в WoodWop в одном файле делается сверловка двух пластей? Какими функциями? Сам пока эту штуку не ковырял.
Ручей
 
Сообщения: 887
Зарегистрирован: 15 июл 2011 19:55

Re: ЧПУ и K3

Сообщение ZInovich » 28 ноя 2013 10:54

Ручей писал(а):
ZInovich писал(а):И все же, как сменить базовый угол с 1го на 4й ? Пробовал разворот детали описанный ранее (если я все правильно сделал),но у меня иногда деталь становиться пазом по Y.
Возможно ли объединение сверловки A и F в один файл, как в вудвоп при помощи условий nonmirror и mirror ?

Кстати, как в WoodWop в одном файле делается сверловка двух пластей? Какими функциями? Сам пока эту штуку не ковырял.

Для первого режима вся обработка с условием _nonmirror для второго режима _mirrror
Вложения
nonmir.JPG
ZInovich
 
Сообщения: 36
Зарегистрирован: 27 ноя 2013 20:36

Re: ЧПУ и K3

Сообщение Ручей » 28 ноя 2013 11:09

Спасибо!
Может даже под это перепишем макрос себе, что бы один файл был.
Ручей
 
Сообщения: 887
Зарегистрирован: 15 июл 2011 19:55

Re: ЧПУ и K3

Сообщение ZInovich » 28 ноя 2013 13:32

А что скажет начальник транспортного отдела? Если паз по короткой стороне как быть?
ZInovich
 
Сообщения: 36
Зарегистрирован: 27 ноя 2013 20:36

Re: ЧПУ и K3

Сообщение Ручей » 28 ноя 2013 14:01

ZInovich писал(а):А что скажет начальник транспортного отдела? Если паз по короткой стороне как быть?

Попробуйте этот ФАЙЛ.
Только сохраните свои файлы. Уже не помню, где ставили поворот детали.
Ручей
 
Сообщения: 887
Зарегистрирован: 15 июл 2011 19:55

Re: ЧПУ и K3

Сообщение ZInovich » 28 ноя 2013 16:19

Код: Выделить всё
self.panelRotate(vpi)   # Добавил строку для поворота панели, что бы паз был не со стороны прижимов self.panel.Rotate(vpi/2,machine.Point2d(0,0))
        self.getPanGab()
        if self.Xpanel < self.Ypanel:
            self.panelRotate(vpi/2)
        self.getPanGab()

Как бы дописать условие для панели " если есть паз по X, то дудки вам,а не поворот на 90"?
ZInovich
 
Сообщения: 36
Зарегистрирован: 27 ноя 2013 20:36

Re: ЧПУ и K3

Сообщение Ручей » 28 ноя 2013 16:27

ZInovich писал(а):
Код: Выделить всё
self.panelRotate(vpi)   # Добавил строку для поворота панели, что бы паз был не со стороны прижимов self.panel.Rotate(vpi/2,machine.Point2d(0,0))
        self.getPanGab()
        if self.Xpanel < self.Ypanel:
            self.panelRotate(vpi/2)
        self.getPanGab()

Как бы дописать условие для панели " если есть паз по X, то дудки вам,а не поворот на 90"?

Это надо Александру вопрос задать. Я пока не умею энтого делать - руки не доходят.
Ручей
 
Сообщения: 887
Зарегистрирован: 15 июл 2011 19:55

Re: ЧПУ и K3

Сообщение Алек(андр » 29 ноя 2013 09:01

Логика работы модуля ЧПУ такая:
Есть два класса Writer и Boa
Boa обрабатывает данные панели
Writer занимается формированием файла вывода для вашего ЧПУ

При вызове модуля стартует метод класса Boa StartProcessing.пустая функция.
Затем для каждой панели из того Boa будет вызвана сначала StartPanel
Здесь происходит стартовая инициализация переменных и какие то метамарфозы типа
Код: Выделить всё
if (self.Selobj == 0):  # Если это не выбранная панель, то не фиг ее обрабатывать
            return False     


Или
Код: Выделить всё
        # Анализируем габарит панели и поворачиваем ее длинной стороной вдоль X
        self.panelRotate(vpi)   # Добавил строку для поворота панели, что бы паз был не со стороны прижимов self.panel.Rotate(vpi/2,machine.Point2d(0,0))
        self.getPanGab()
        if self.Xpanel < self.Ypanel:
            self.panelRotate(vpi/2)   

Здесь маленький секрет . Эта функция может возвращать модулю ЧПУ логическое True или False. В случае True работа продолжается в случае False переходим к следующей панели.
Далее модуль вызывает функции по мере появления(обнаружения) обработок присущих данной панели.
Для сверловки Drilling
для пазов Slot
В этих функциях происходит заполнение свойств класса Boa информацией по обработкам.
Собираем информацию по обработкам.

Когда все обработки собраны и их больше в панели нет будет вызвана функция EndPanel.
Которая обрабатывает собранную информацию по панели и вызывает Writer для формирования файла нужного станку.

Что касается пропила вдоль Y делал модуль для Biesseтам это выглядит так. Только не вздумайте тащить это к себе . Это просто пример. У вас работать не будет!!!
Это пример и пища для размышлений.
Код: Выделить всё
    def EndPanel(self):
        '''Функция вызывается в конце обработки каждой панели'''
        if (self.Selobj == 0):  # Если это не выбранная панель
            return
        b = self.panel.bounding_box
        Ypanel=b.max.y-b.min.y
        Xpanel=b.max.x-b.min.x
       
        self.panel.overt = False # Признак перевернутости Для версии к3 6,5  надо проверить в 7,1
        # Запоминаем пропилы и отверстия. Они нам потребуются
        # Выясняем какие пласти панели требуют обязательной обработки
        isPlaneA = (self.isBlindHoleA==True or self.isSlotsA==True) # Если по А есть пропил или глухое отверстие его выводить обязательно
        isPlaneF = (self.isBlindHoleF==True or self.isSlotsF==True) # Если по F есть пропил или глухое отверстие его выводить обязательно
        hashsimbol='#' if isPlaneA and isPlaneF else ''
        if isPlaneA or (not isPlaneF): # Выводим сторону А  если есть условие обязательной обработки или по стороне F все пусто
            # Определяем возможность обработки за один установ и поррождаем необходимое число установов для выполнения всех обработок пласти A
            self.writeOutputFile(self.settings.machine_base_name[BASEPOINT],hashsimbol)  # Создаем файл вывода и пишем в него накопленную информацию.
            hashsimbol='#'
            for i in range(3):
                # Крутим панель три раза и пытаемся обработать
                self.rotatePanel()
                self.writeOutputFile(self.settings.machine_base_name[BASEPOINT],hashsimbol)
            self.rotatePanel() # Возвращаем в исходное состояние
        # Если есть глухие отверстия или пропилы с обратной стороны, надо еще перевернуть панель
        if isPlaneF: #(self.isBlindHoleF==True or self.isSlotsF==True):
            self.panelOverturn()
            # Переворачиваем относительно оси X
            # Добавляем новое свойство у контура overt
            for p in self.millingTech:
                p.overt = True
            self.writeOutputFile(self.settings.machine_base_name[BASEPOINT],hashsimbol)
            for i in range(3): # Крутим панель три раза и пытаемся обработать
                self.rotatePanel()
                self.writeOutputFile(self.settings.machine_base_name[BASEPOINT],hashsimbol)
            self.rotatePanel() # Возвращаем в исходное состояние
        return


Тут суть вот в чем
Код: Выделить всё
            for i in range(3): # Крутим панель три раза и пытаемся обработать
                self.rotatePanel()
                self.writeOutputFile(self.settings.machine_base_name[BASEPOINT],hashsimbol)

Максимальное число установов для панели 8.
две пласти и 4 угла.

self.writeOutputFile при формировании файла выводит только невыполненные обработки. Так например сквозное отверстие будет выполнено только один раз.
Ваш паз по Y точно при первом установе выполнен не будет.
Код: Выделить всё
def writerSlotsCommand(self, slotsTuple):
        '''Подготавливает к выводу пропилы
        side - сторона пропила
        slotsTuple - список пропилов в данной панели'''
        a=0
        for s in slotsTuple:
            if (Utiles.GetSlotDirection(s)=="X" and s.is_plane):
                a=a+1
                if s.cnc_key == False: # Признак вывода пропила в файл ЧПУ
                    self.writer.SlotCommand(a,s)
                    s.cnc_key = True # Признак вывода пропила в файл ЧПУ
                   
        return


Вот в этой строке if (Utiles.GetSlotDirection(s)=="X" and s.is_plane):
происходит проверка , что паз находится вдоль оси X и принадлежит нужной пласти.

Методы Panel.overturn и Panel.rotate устроены таким образом, что вся геометрия панели изменяется в соответствии с поворотом или переворотом в привязке к системе координат станка.
Аватара пользователя
Алек(андр
 
Сообщения: 1202
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: ЧПУ и K3

Сообщение Алек(андр » 29 ноя 2013 09:09

ZInovich писал(а):И все же, как сменить базовый угол с 1го на 4й ? Пробовал разворот детали описанный ранее (если я все правильно сделал),но у меня иногда деталь становиться пазом по Y.
Возможно ли объединение сверловки A и F в один файл, как в вудвоп при помощи условий nonmirror и mirror ?

Комуто я это делал, но найти не могу.
Это условие надо обработать в EndPanel.
Сейчас у вас процесс разделен
Код: Выделить всё
        if self.isBlindHoleF or self.isSlotsF: # есть сверловка по F
           
            self.panel.Overturn(0) # Перелистнули как страницу вокруг OY на 180 градусов
            self.getPanGab()
            #self.Ovtrn = True

        if self.writer.KeyOutput==False:
            con = self.readerContours(self.panel) #  читаем контур
            self.writeOutputFile("F") # Создаем файл вывода и пишем в него шапку.
            self.writerContours(con)
            self.HandlingOfContours(con) # Обработка на контуры

Вот эта часть создает новый файл. А Вам этого не надо.
Но надо куда то воткнуть этот самый mirror
наверное в шапку файла.
Выложите пример программы с этим оператором сделанным вручную в WoodWop. Обсудим варианты реализации. Но лучше в отдельной теме.
Аватара пользователя
Алек(андр
 
Сообщения: 1202
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Пред.След.

Вернуться в К3-Мебель. Программа для производства и продажи мебели.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron