К3-Мебель. Вопросы по работе в программе

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

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 05 фев 2019 12:18

Ругается на имя переменной Видимо вы же её и создали, значит себя и спросите где.

Может dbVar какой то в каком то прототипе

Например ОченьДлинноеИмя=dbVar("ОченьДлинноеИмя",0); приведет к ошибке

поскольку при использовании макроязыка действуют ограничения на длину имен переменных

Максимальная длина имени переменной - 12 символов. Переменные иногда называют "калькуляторными переменными".


На имя параметров в таблице прототипов в АКСЕССЕ это ограничение не распространяется Вот это --> dbVar("ОченьДлинноеИмя",0) можно , а
ОченьДлинноеИмя= нельзя.

У вас FasadBandMAter 14 символов

скорее всего где то попалось FasadBandMAter=

Надо заменить!

В случае использования языка Python таких ограничений нет. Но там другие замороки, например регистрозависимость имен переменных, и вам для понимания лучше потолкаться пока с макросами.
Аватара пользователя
Алек(андр
 
Сообщения: 1235
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 05 фев 2019 12:41

Все дело в том, что не я ее создал, а разработчики в последней версии добавили этот параметр в пользовательские умолчания. Соответственно, надо укоротить имя этой переменной, вопрос в том, что я не знаю откуда подтягивается это имя, где его менять
Gnus10
 
Сообщения: 38
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Роман Николаевич » 05 фев 2019 15:41

Gnus10 писал(а):Все дело в том, что не я ее создал, а разработчики в последней версии добавили этот параметр в пользовательские умолчания. Соответственно, надо укоротить имя этой переменной, вопрос в том, что я не знаю откуда подтягивается это имя, где его менять

Скорее всего, именно переменную создали вы, разработчики добавили только умолчание "FasadBandMater"(это не имя переменной, это название умолчания). Длина названия умолчания не ограничена 14 символами, а длина переменной ограничена. Вам нужно сделать короче имя вашей переменной, в которую вы хотите положить значение из пользовательского умолчанию. Пример из стандартного макро:
Код: Выделить всё
NULLOUT=getvarinst(2,"RoughBandMater",KorpKrom,0);   //-- Кромка фасада по панелям
NULLOUT=getvarinst(2,"FasadBandMater",FasKrom,KorpKrom);  //-- Кромка фасада по дверям

Если переменную длиннее 14 символов создали не вы, а она была стандартно в дистрибутиве, то напишите что это за переменная и в каком она макросе.
Техническая поддержка К3-Мебель roman@k3info.ru
Центр "ГеоС", Нижний Новгород
http://www.k3-mebel.ru
Аватара пользователя
Роман Николаевич
 
Сообщения: 806
Зарегистрирован: 30 ноя 2010 12:29

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 05 фев 2019 19:52

Роман Николаевич писал(а):
Gnus10 писал(а):Все дело в том, что не я ее создал, а разработчики в последней версии добавили этот параметр в пользовательские умолчания. Соответственно, надо укоротить имя этой переменной, вопрос в том, что я не знаю откуда подтягивается это имя, где его менять

Скорее всего, именно переменную создали вы, разработчики добавили только умолчание "FasadBandMater"(это не имя переменной, это название умолчания). Длина названия умолчания не ограничена 14 символами, а длина переменной ограничена. Вам нужно сделать короче имя вашей переменной, в которую вы хотите положить значение из пользовательского умолчанию. Пример из стандартного макро:
Код: Выделить всё
NULLOUT=getvarinst(2,"RoughBandMater",KorpKrom,0);   //-- Кромка фасада по панелям
NULLOUT=getvarinst(2,"FasadBandMater",FasKrom,KorpKrom);  //-- Кромка фасада по дверям

Если переменную длиннее 14 символов создали не вы, а она была стандартно в дистрибутиве, то напишите что это за переменная и в каком она макросе.

Тогда я что то не понимаю:

12_02.JPG

2019-02-05_19-40-47.png

А вот что делаю я и на что ругается программа (отрывок из ApostProc.mac)
Код: Выделить всё
if (Posit==125)
{
  smart edit list obj
  "КорпМат" PrMater
  "ФасМат" FasDMat
  "ТипКромки" Typ_Kro
  "FasKrom" FasadBandMater
  "ФасМатВ" FasDMat
  "ТипРуч" DfHandl
  "ВысотРуч" 120
  "СдвРуч" 40
  "Глуб" 550
  done;
}
Gnus10
 
Сообщения: 38
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 06 фев 2019 13:33

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

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 06 фев 2019 13:55

Алек(андр писал(а):Изображение

Так это и понятно, что на нее ругается, вопрос в том где резать :)
Gnus10
 
Сообщения: 38
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 06 фев 2019 15:36

Здесь вы создаете изделие по прототипу с ID 125 передавая в качестве параметра эту длинную переменную, но вы должны были определить её где то сверху. Она должна быть либо локальной, либо глобальной.

Роман привел пример:

Код: Выделить всё
NULLOUT=getvarinst(2,"FasadBandMater",FasKrom,KorpKrom);  //-- Кромка фасада по дверям


здесь инициализируется переменная FasKrom из пользовательского инстанса "FasadBandMater"

Это умолчания на заказ "FasadBandMater", а переменная в которую помещается это значение зовут FasKrom

Если таковая отсутствует используется значение из KorpKrom

Если выполнить a=1+1 проблем нет
если c=1+b, то получим ошибку с информацией , что переменная не определена. b должна быть инициализирована например так b=5

Судя по всему, с=1+ОченьДлиннаяПеременная вызовет ошибку не в том, что переменная не определена, а в том что имя слишком длинное.
Аватара пользователя
Алек(андр
 
Сообщения: 1235
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 06 фев 2019 15:38

Определите переменную вместо FasadBandMater Назовите её как у Романа FasKrom и подставляйте как значение параметра для прототипа
Аватара пользователя
Алек(андр
 
Сообщения: 1235
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 06 фев 2019 16:38

Алек(андр писал(а):Определите переменную вместо FasadBandMater Назовите её как у Романа FasKrom и подставляйте как значение параметра для прототипа

Я окончательно запутался...
Итак, мои действия по порядку:
1. Добавил в параметры прототипа новый параметр с именем "FasKrom" и запросом "Тип кромки фасада" Согласно Вашей инструкции размещенной несколько страниц назад
2. Внес соответствующие изменения в макросы aboad1/2/... согласно инструкции
3. Внес изменения в макросы отвечающие за построение ниш, что бы кромка на элементах наполнения ниш оставалась такой же как была, т.е. соответствовала кромке каркаса, а на фасадах менялась

После этих действий все работает корректно, но кромка на фасады по умолчанию ставится та, которая прописана в параметрах прототипа

4. Пытаюсь с помощью постобработки сделать так, что бы при добавлении объекта в сцену кромка фасада устанавливалась согласно пользовательским умолчаниям, как и остальные необходимые мне параметры: кромка каркаса, глубина, материал и т.д.
Но а дальше проблема известна, все работает до момента добавления "FasKrom" FasadBandMat

По поводу определить переменную в самом начале файла переменная была определена по аналогии с остальными:
Код: Выделить всё
global PrMater;         //-- Умолчание для материалов корпуса
global Typ_Kro;         //-- Тип кромки корпуса
global FasadBandMater;         //-- Тип кромки фасада
global BPMater;         //-- Умолчание для материалов накл. стенок
global FasDMat;         //-- Материал фасадов дверей
global DfHandl;         //-- Ручка
global g_DfLeg;         //-- Опора
global BxHandPlace;         //-- Расположение ручки
Gnus10
 
Сообщения: 38
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 06 фев 2019 17:04

Надо чайку попить :)

И ещё раз внимательно почитать, что я написал.

Код: Выделить всё
global FasadBandMater;         //-- Тип кромки фасада


Использовать нельзя!

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

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 06 фев 2019 17:05

Ещё раз

Определите переменную вместо FasadBandMater Назовите её как у Романа FasKrom и подставляйте как значение параметра для прототипа
Аватара пользователя
Алек(андр
 
Сообщения: 1235
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 06 фев 2019 17:07

Вот же всё написал

Для вас же написал! уже всё готово.... вставьте перед своим построением по прототипу в постобработчике

Роман привел пример:

Код: Выделить всё
NULLOUT=getvarinst(2,"FasadBandMater",FasKrom,KorpKrom);  //-- Кромка фасада по дверям


здесь инициализируется переменная FasKrom из пользовательского инстанса "FasadBandMater"
Аватара пользователя
Алек(андр
 
Сообщения: 1235
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 06 фев 2019 19:49

Спасибо! Все заработало!
Gnus10
 
Сообщения: 38
Зарегистрирован: 14 авг 2014 19:49

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Алек(андр » 06 фев 2019 23:25

Простите, не удержался :)
По началу, оно почти всегда так! Пока заработает....

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

Re: К3-Мебель. Вопросы по работе в программе

Сообщение Gnus10 » 07 фев 2019 19:26

Примерно так и было :)
Еще раз спасибо за помощь!
Gnus10
 
Сообщения: 38
Зарегистрирован: 14 авг 2014 19:49

Пред.След.

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

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

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