Вопросы по МАКРОЯЗЫКу.

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

Re: Вопросы по МАКРОЯЗЫКу.

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

VEB писал(а):Стоит следующая задача. Есть фасад в алюминиевой рамке. Есть профиля для этой рамки, заведённые в номенклатуре по цветам и внесённые в группу "Профили алюминиевых фасадов". Один из этих профилей назначен для фасада материалом по умолчанию.
Необходимо при установке двери выбрать цвет профиля из группы "Цвет профиля", передать его в макрос построения фасада, найти в номенклатуре профиль, соответствующего цвета и с таким же типом профиля как профиль по умолчанию, назначить в качестве материала рамки найденный профиль.
С выбором из списка и передачей проблем нет, а вот поиск нужного профиля вызвал затруднение.
Заранее благодарен за помощь в решении вопроса.



Читайте 39. 14. 1 Запрос данных из Номенклатуры
PriceInfo, NPGetByWhere, NPGetByProps

В вашем случае я бы использовал команду NPGetByWhere
В Proto есть примеры использования.
Вот например:
Код: Выделить всё
TypeB=PriceInfo(ЗСтМат,"MATTYPENAM","",1);
  aaa=npgetbywhere(1,"[MATTYPENAMe] = '"+str(TypeB)+"' and [Texture] = '"+TTexCol+"'","qwe")

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

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 17 дек 2014 11:37

Роман Николаевич писал(а):
VEB писал(а):Необходимо при установке двери выбрать цвет профиля из группы "Цвет профиля", передать его в макрос построения фасада, найти в номенклатуре профиль, соответствующего цвета и с таким же типом профиля как профиль по умолчанию, назначить в качестве материала рамки найденный профиль. С выбором из списка и передачей проблем нет, а вот поиск нужного профиля вызвал затруднение.

Для поиска нужного профиля используйте команду NPGetByWhere. Первым критерием для поиска у Вас будет свойство "Тип профиля", по которому Вы сможете найти в базе все профили, относящиеся к определенному типу. Что касается цвета, то тут нужно определиться по какому признаку Вы будете сопоставлять цвет из группы "Цвет профиля" с цветом профиля из Номенклатуры. Варианты могут быть разные.
Например, у всех цветов группы "Цвет профиля" в Номенклатуре заводите свойство "Текстура" и такое же свойство с соответствующими значениями назначаете профилям. Тогда можно, сопоставляя свойство "Текстура", находить профиль нужного цвета в базе.
Или же можно "зашиться" на название профилей в Номенклатуре, как это сделано в системах дверей. Т.е. в названии профиля в конце последним словом писать название цвета. Сопоставление в данном случае можно делать по названию цвета в группе "Цвет профиля" и по последнему слову в названии самого профиля.
Так же можно завести свое собственное свойство и делать поиск профиля так же, как и при использовании свойства "Текстура".

Спасибо большое, получилось.
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 17 дек 2014 11:43

Алек(андр писал(а):Вот например:
Код: Выделить всё
TypeB=PriceInfo(ЗСтМат,"MATTYPENAM","",1);
  aaa=npgetbywhere(1,"[MATTYPENAMe] = '"+str(TypeB)+"' and [Texture] = '"+TTexCol+"'","qwe")

Вернет PriceID найденного материала

Да, спасибо, совет Романа Николаевича помог в успешном решении вопроса.
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 06 май 2015 13:11

Посредством команды
Код: Выделить всё
ChProp MapByPars
меняю раскраску текстуры, но команда берёт текстуру либо по индексу, либо по имени, которое присвоил текстуре К3, а можно ли получить один из этих параметров из имени, которое текстуре присвоил пользователь. Цель следующая: есть библиотека RAL, в ней имена текстур соответствуют значениям из таблицы, при построении фасада пользователь задаёт необходимый номер и фасад раскрашивается в соответствующий цвет.
Можно написать макрос, в котором будет прописано соответствие, но может есть возможность получить значения встроенными средствами?
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение Ручей » 06 май 2015 13:38

VEB писал(а):Посредством команды
Код: Выделить всё
ChProp MapByPars
меняю раскраску текстуры, но команда берёт текстуру либо по индексу, либо по имени, которое присвоил текстуре К3, а можно ли получить один из этих параметров из имени, которое текстуре присвоил пользователь. Цель следующая: есть библиотека RAL, в ней имена текстур соответствуют значениям из таблицы, при построении фасада пользователь задаёт необходимый номер и фасад раскрашивается в соответствующий цвет.
Можно написать макрос, в котором будет прописано соответствие, но может есть возможность получить значения встроенными средствами?

Кстати по каталогам цветов.
Каталог RAL я создавал вручную, т.к. там чуть более 200 цветов. Хотя и замучался руками каждую текстуру делать.
Хочу создать каталог NCS, но там руками... более 2000...
Может кто знает правильный алгоритм перевода NCS в RGB?
Алгоритм, который я нашёл, даёт не соответствие результата в сравнении с их официальным переводчиком NCS в RGB.
Ручей
 
Сообщения: 878
Зарегистрирован: 15 июл 2011 19:55

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 06 май 2015 13:53

Ручей писал(а):Кстати по каталогам цветов.
Каталог RAL я создавал вручную, т.к. там чуть более 200 цветов. Хотя и замучался руками каждую текстуру делать.
Хочу создать каталог NCS, но там руками... более 2000...
Может кто знает правильный алгоритм перевода NCS в RGB?
Алгоритм, который я нашёл, даёт не соответствие результата в сравнении с их официальным переводчиком NCS в RGB.

Я не стал заморачиваться, на вводе RAL, тем более он нас интересует только для визуализации, номенклатуру в соответствии с ним решили не плодить, перейдя на 7.3 обнаружил в папке библиотеку с текстурами RAL :)
А NCS мы сейчас не используем.
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 10 май 2016 15:07

Здравствуйте
Стоит задача построить гнутый профиль в 2-3 местах и в разных осях посредством макроязыка. Может кто сталкивался с таким? Каким образом это можно сделать, если возможно? SetProf6Par вроде позволят построить только с одним изгибом.
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение Рыжий Пёс » 10 май 2016 15:16

Примерно так:
Код: Выделить всё
            macro ProtoPath+"MakeProf.mac" 0,0,0,LB,0,0;
            objident last 1 PathLine;
            FileProf=PriceInfo(sealBend,"S3",""); //-- Имя файла с образующей
            if FileProf=="" { #PathForm rectangle 0,0,0 10,1,0; }
            else { #PathForm append ProtoPath+FileProf 0 0 0; }
            #ProfObj pipe PanPath PathForm 0 0 0 -90 ; //-- Делаем гнутый профиль
            attrobj copy PathLine all ProfObj done;  //-- Копируем атрибуты от прямого в гнутый
            delete PanPath, PathLine, PathForm done;

PanPath - направляющая гнутого профиля.
Аватара пользователя
Рыжий Пёс
 
Сообщения: 338
Зарегистрирован: 06 фев 2010 00:11

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 12 май 2016 11:06

Рыжий Пёс писал(а):Примерно так:
Код: Выделить всё
            macro ProtoPath+"MakeProf.mac" 0,0,0,LB,0,0;
            objident last 1 PathLine;
            FileProf=PriceInfo(sealBend,"S3",""); //-- Имя файла с образующей
            if FileProf=="" { #PathForm rectangle 0,0,0 10,1,0; }
            else { #PathForm append ProtoPath+FileProf 0 0 0; }
            #ProfObj pipe PanPath PathForm 0 0 0 -90 ; //-- Делаем гнутый профиль
            attrobj copy PathLine all ProfObj done;  //-- Копируем атрибуты от прямого в гнутый
            delete PanPath, PathLine, PathForm done;

PanPath - направляющая гнутого профиля.


Спасибо :idea: , вроде получилось в тестовом режиме, с небольшой правкой. Теперь буду отрисовывать реальный прототип.
Только вот отделка не применилась :(
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 17 май 2016 16:07

Столкнулся с первой проблемой, которая возникает из-за построенного таким образом профиля: не получается создать отчет "Информация о заказе". Выдаёт ошибку: "Ошибка во время создания базы выгрузки!" Не могу найти как игнорировать её. Свои отчеты, которые запускаются из макроса отрабатывают, т.к. в запускающем макросе убран контроль на ошибки при создании базы.
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

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

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

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 17 май 2016 16:56

Алек(андр писал(а):Ваша информация по профилю некорректна, а выгружать вы пытаетесь ее, как профиль. отсюда ошибка!
В данном случае эту "загогулину" надо как то по другому оформлять.

Ну нам эта "загогулина" нужна именно той самой трубой, из которой её и строю. Т.к. изготавливать мы её будем сами.
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение Алек(андр » 17 май 2016 18:09

Почитайте про функции GetCsg и SetCsg
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение VEB » 18 май 2016 09:19

Алек(андр писал(а):Почитайте про функции GetCsg и SetCsg

Спасибо, помогло.
ООО "Артмакс Лайф"
ПКМ 7.3
Аватара пользователя
VEB
 
Сообщения: 118
Зарегистрирован: 24 фев 2014 07:10

Re: Вопросы по МАКРОЯЗЫКу.

Сообщение Алек(андр » 18 май 2016 09:48

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

Пред.След.

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

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

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

cron