Фрезеровки в мебельной панели

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

Фрезеровки в мебельной панели

Сообщение Гость » 07 апр 2016 09:22

Ручей писал(а):
Рыжий Пёс писал(а):Возможно, надо открыть отдельную тему по работе с панелью.

Я делал фрезеровки. В теме "успехов" выкладывал картинки.

Теперь появилось так много тем, что "успехи" я не нашёл. Надо бы модераторам почистить форум, что-то они перестали уборкой заниматься.
Так что, не получится полноценно использовать фрезеровки? Нет смысла открывать тему по работе с панелью или всё-таки есть? Я только начал с этим разбираться. У меня единственный рабочий пример - фасад с параметрическим вырезом.
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Разговоры не по теме. Флуд

Сообщение Ручей » 07 апр 2016 10:08

Тема тут, но картинок уженет, т.к. хостинг картинок не работает.
С фрезеровками стоит заниматься, но будет не комфортно.
Может разработчиков расшевелим в этом плане.
Всё таки тема фрезеровок актуальна для многих.
Кому то ещё надо, что бы фрезеровки выгружались на станок.
Ручей
 
Сообщения: 877
Зарегистрирован: 15 июл 2011 19:55

Re: Разговоры не по теме. Флуд

Сообщение Гость » 07 апр 2016 10:22

Ручей писал(а):Тема тут, но картинок уженет, т.к. хостинг картинок не работает.
С фрезеровками стоит заниматься, но будет не комфортно.
Может разработчиков расшевелим в этом плане.
Всё таки тема фрезеровок актуальна для многих.
Кому то ещё надо, что бы фрезеровки выгружались на станок.

Некомфортность меня не пугает. Вот именно переносом фрезеровки в WW я и хочу заняться. Могу, конечно, ограничиться условным отображением или написать свои макросы фрезеровки, но хочется сделать всё по уму.
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Разговоры не по теме. Флуд

Сообщение Ручей » 07 апр 2016 13:34

Тут надо Шубину вопрос с фрезеровками задать. Он ими занимался (в свободное время, так сказать).
Мы с ним несколько решений нашли, как улучшить, но там ещё пилить и пилить.
На сегодняшний момент, нужна реализации смещение фрезы в панели по плоскости.
Потому как, если фрезу смещать вручную, то не будет работать построение фрезы вращением, что должно быть.
Ручей
 
Сообщения: 877
Зарегистрирован: 15 июл 2011 19:55

Re: Разговоры не по теме. Флуд

Сообщение Ручей » 07 апр 2016 13:35

Один из макросов добавления фрезеровки
Код: Выделить всё
//-- Макрос добавления фрезеровки на панель
defarr g[3], g6[6] ;
defarr arr[24];
global ProtoPath;
getpar Panel Fr numkont kontur PFr Delta Glub Side Sec exep inp;

object_2=sysvar(60);

if object_2==0
   {
     exit;
   }
NULLOUT=GetSnap();

onerror end;

setucs lcs Partly Panel;

//-- Ищем имя файла с образующей фрезы
err=NPGetByWhere(1,"[Name] = '"+Fr+"'","IDFr");
Prof=PriceInfo(IDFr[1],"K3File","");
FrX=PriceInfo(IDFr[1],"ProfX",0);
FrY=PriceInfo(IDFr[1],"ProfY",0);
dia=PriceInfo(IDFr[1],"dia",FrX);
FilePath=MPathExpand("<K3files>\\"+Prof);

nullout=getsnap();
setucs gcs;
if Side=="A"   { Sid=1; }
if Side=="F"   { Sid=-1; }
if PFr=="Центр"
   {
      pre="_c"+str(Delta)+"_g"+str(Glub);
      #Frez append FilePath 0 Delta 0;//x y z;
   }
if PFr=="Справа"
   {
      pre="_l"+str(Delta)+"_g"+str(Glub);
      #Frez append FilePath 0 (dia/2)-Delta 0; //x y z;
   }
if PFr=="Слева"
   {
      pre="_r"+str(Delta)+"_g"+str(Glub);
      #Frez append FilePath 0 (-dia/2)+Delta 0; //x y z;
   }
#Ply pline path Frez;                  //-- Создадим из контура полилинию
nullout=ReSnap();
//------------------------------
if inp==1
   {
      arr[1]=Panel;
      err=GetPan6Par(1,arr);
   }
i=1;

lopkont:

NULLOUT=InitArray(arr,0);
arr[1]=PriceInfo(IDFr[1],"MatName","Фреза")+pre;   
arr[2]=Ply;                        //-- Укажем полилинию образующей   
IDMillA=SetPan6Par(13,arr);      //-- Регистрируем полилинию и получаем его ID во внутреннем представлении панели


//-------------------------------------------------------------

arr[1]=0;                              //-- Тип выреза
arr[2]=1;                              //-- Форма выреза
arr[3]=Kontur[i];         //-- Полилиния
err=SetPan6Par(7,arr);

//-- Параметры положения выреза
//InitArray(arr,0);
arr[1]=9;            //-- Привязка выреза к одному из торцев (1,3,5,7) или свободная привязка (9)
arr[2]=0;            //-- Если привязка к торцу, то сдвиг вдоль торца, иначе - абсолютная координата X в ЛСК панели
arr[3]=0;            //-- Если привязка к торцу, то сдвиг вглубь панели, иначе - абсолютная координата Y в ЛСК панели
arr[4]=0;            //-- Угол поворота выреза в градусах
arr[5]=Sid;            //-- Глубина выреза: 0, если вырез сквозной; > 0 - не сквозной со стороны пласти A; < 0 - не сквозной со стороны пласти F
err=SetPan6Par(8,arr);

arr[1]=Sec;            //-- Секция раскрашивания
IDKont=SetPan6Par(9,arr);  //-- Добавить вырез, параметры которого определены кодами 7 и 8

//-------------------------------------------------------------------

//-- Регистрируем фрезеровку
arr[1]=0;            //-- Сдвиг в долях толщины
arr[2]=Glub;         //-- Сдвиг в мм
arr[3]=0;            //-- Зарезерворованные значения
arr[4]=0;            //-- Зарезерворованные значения
arr[5]=0;            //-- Зарезерворованные значения
err=SetPan6Par(14,arr);      //-- Добавим положение фрезеровки на вырезе

NULLOUT=InitArray(arr,0);
//-- Зададим имя фрезеровки
//-- Имя фрезеровки состоит из входного параметра имени фрезеровки, сдвига в долях толщины, сдвига в мм, ID профиля фрезы
arr[1]=PriceInfo(IDFr[1],"MatName","Фреза")+pre;
arr[2]=IDMillA;                //-- Зададим форму фрезы (ID профиля во внутреннем представлении панели )
arr[3]=Sec;                   //-- Номер секции раскрашивания
idFreza=SetPan6Par(15,arr);   //-- Регистрируем фрезеровку и получаем ее ID

InitArray(arr,0);
arr[1]=IDKont;                  //-- ID выреза
arr[2]=-1;                     //-- ID элемента выреза
arr[3]=IDFreza;                  //-- ID полилинии фрезы
NULLOUT=SetPan6Par(16,arr);         //-- Добавим фрезеровку на вырез

if i!=numkont { i=i+1; goto lopkont; }
delete Frez Ply;
if exep==1
   {
      #Panel MBPanel execute Panel;
   }

NULLOUT=ReSnap();   
exit;

end:
offerror;
NULLOUT=ReSnap();   
exit;
Ручей
 
Сообщения: 877
Зарегистрирован: 15 июл 2011 19:55

Re: Разговоры не по теме. Флуд

Сообщение Гость » 07 апр 2016 14:41

Что значит
нужна реализации смещение фрезы в панели по плоскости
? Если всё это не работает, да ещё и в мебельную базу не скидывается, то проще самому сделать. И вращение добавить тоже не трудно - просто делаешь трубу, а на конце добавляешь вращение.
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Фрезеровки в мебельной панели

Сообщение Гость » 08 апр 2016 10:45

Код: Выделить всё
//-- Имя состоит из имени файла, сдвига в долях толщины, сдвига в мм, тип выреза, угол поворота и 0 в конце
//-- Например, "Профили\Фрезы\FR015.k3=0=5=1=90=0"
arr[1]=Prof+Side+str(SdProc)+Side+str(SdMM)+Side+str(TypeCut)+Side+str(Angle)+Side+"0";
arr[2]=Ply;                     //-- Укажем полилинию образующей
IDMillA=SetPan6Par(13,arr);      //-- Регистрируем полилинию

Кто-нибудь может объяснить, зачем нужен arr[1]? Что это за бред? Угол поворота чего и куда?
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Фрезеровки в мебельной панели

Сообщение Алек(андр » 08 апр 2016 11:11

Это имя фрезеровки.
Сформировано так как надо ибо содержит параметры. Парсим имя получаем параметры в коде. Это не бред, а что то типа пластыря :)

Ибо видимо нет нормального набора get и put

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

Re: Фрезеровки в мебельной панели

Сообщение Гость » 08 апр 2016 11:24

Если я делаю фасад, то у меня всё это в параметрах. Понятно, в принципе не нужно.
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Фрезеровки в мебельной панели

Сообщение Гость » 20 апр 2016 15:56

Что-то с фрезеровкой никак :( Не подскажет ли кто-нибудь, как и где рисовать контур фрезы (местоположение)?
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Фрезеровки в мебельной панели

Сообщение Роман Николаевич » 20 апр 2016 17:38

Рыжий Пёс писал(а):Что-то с фрезеровкой никак :( Не подскажет ли кто-нибудь, как и где рисовать контур фрезы (местоположение)?

Контур фрезеровки создается макропрограммой. Например, макрос GetPictPath.mac, который используется для большинства фрезерованных фасадов в программе. Вот пример простого фасада из него:
Код: Выделить всё
//============================= Крышка одинарная =======================
if (Picture==1) {
  xn=xn+PictPar[1]
  zn=zn+PictPar[2]
  dx=dx-PictPar[1]*2
  dz=dz-PictPar[2]*2
  dx1=30; //-- Отступ узора по ширине
  dz1=50; //-- Отступ узора по высоте
if (dx<186)||(dz<86)      // Без рисунка фасада
{
   putmsg("Текущие габариты фасада "+str(prov1)+"x"+str(prov2)+" меньше допустимых"+str((PictPar[1]*2)+186)+"x"+str((PictPar[2]*2)+86),0);
   putmsg("Поменяйте текущий размер фасада или выберите другой тип фасада.",0);
   exit;
}
  line xn+dx1 yn zn+dz-dz1
       xn yn zn+dz-dz1
       xn yn zn
       xn+dx yn zn
       xn+dx yn zn+dz-dz1
       xn+dx-dx1 yn zn+dz-dz1;

   arc xn+dx-dx1 yn zn+dz-dz1
      Internal xn+dx/2 yn  zn+dz
      xn+dx1 yn zn+dz-dz1;
  #Pat path select last 6 done last 6 create;
  PicArr[1]=Pat;
  PictNum=1;
  exit;
}

Команда line создает несколько отрезков. Команда arc создает дугу. Строка #Pat path select last 6 done last 6 create; собирает созданные объекты в контур. Далее контур помещается в массив. В другом макросе на этот контур назначается фреза.
Отрезки и дуга создаются по координатам. Переменная xn,yn это координаты правого нижнего угла фасада, dx - ширина фасада, dz - высота фасада, dx1 и dz1 это отступы от края фасада по ширине и высоте, соответственно.
Сам контур фрезы это К3-файл, который представляет собой плоский контур. Профили фрез хранятся в папке "K3Files\Профили\Фрезы". Саму фрезу нужно занести в "Номенклатуру" как "Профиль", а затем полученную запись добавить в справочнике "Сборочные единицы" в сборочную единицу "Фрезы", в свойство "ListMat".
Техническая поддержка К3-Мебель roman@k3info.ru
Центр "ГеоС", Нижний Новгород
http://www.k3-mebel.ru
Аватара пользователя
Роман Николаевич
 
Сообщения: 799
Зарегистрирован: 30 ноя 2010 12:29

Re: Фрезеровки в мебельной панели

Сообщение Гость » 10 май 2016 12:06

Вроде бы разобрался с фрезеровками, что куда. Возник следующий вопрос: не получается фрезеровать разными профилями фрез, программа запоминает последнюю и при следующем вызове макроса делает вырез той-же формы. Команду res=SetPan6Par(999,arr) для очистки параметров использую.
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Фрезеровки в мебельной панели

Сообщение Гость » 11 май 2016 17:04

Хочу извлечь из панели информацию о фрезеровках. Как узнать номера или ID фрезеровок? Как привязать их к вырезам?
---------------------------------------------------------------------------------------------------
Сам спрашиваю - сам отвечаю.
GetPan6Par(16,arr) возвращает arr[2] - номер контура, методом перебора всех врезок и фрезеровок можно подобрать пары по ID.
Возник след. вопрос:
Где узнать расшифровку битовых масок фрезеровки? Или опять методом тыка?
Аватара пользователя
Гость
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Фрезеровки в мебельной панели

Сообщение Алек(андр » 12 май 2016 14:39

Звиняйте за задержки с ответами! выставка до 14-го мая!

Хотя, все это описано в руководстве по макроязыку и работа с битовыми масками и параметры панели.
K3MACRO_73.pdf
36.7 Работа с битовыми масками
BitClear, BitSet, BitTest, NBitClear, NBitSet, NBitTest

Вам нужен NBitTest

Код: Выделить всё
arr[1]=hPanel;
err=GetPan6Par(1,arr);
arr[1]=Poly;
arr[2]=Side;
err=GetPan6Par(21,arr);
Type=arr[3];
Bimp=arr[4];
Shp=arr[5];
Lep=arr[6];

Узнать 3-й бит в маске Bimp крепежа

    if (nbittest(Bimp,3)==1)  //-- Если пятно контакта  учитываем
    {
      goto end;
    }


p/s/
Извините! Вы спрашиваете на счет расшифровки по битам?
Попытаюсь разобраться! в описалове действительно не нашел.
Аватара пользователя
Алек(андр
 
Сообщения: 1157
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Фрезеровки в мебельной панели

Сообщение Алек(андр » 12 май 2016 16:56

Сейчас там по коду - ровно то же, что и для кромок. Но мне кажется, что это - косяк
Аватара пользователя
Алек(андр
 
Сообщения: 1157
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область


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

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

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