Страница 115 из 115

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

СообщениеДобавлено: 05 фев 2019 12:18
Алек(андр
Ругается на имя переменной Видимо вы же её и создали, значит себя и спросите где.

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

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

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

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


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

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

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

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

В случае использования языка Python таких ограничений нет. Но там другие замороки, например регистрозависимость имен переменных, и вам для понимания лучше потолкаться пока с макросами.

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

СообщениеДобавлено: 05 фев 2019 12:41
Gnus10
Все дело в том, что не я ее создал, а разработчики в последней версии добавили этот параметр в пользовательские умолчания. Соответственно, надо укоротить имя этой переменной, вопрос в том, что я не знаю откуда подтягивается это имя, где его менять

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

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

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

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

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

СообщениеДобавлено: 05 фев 2019 19:52
Gnus10
Роман Николаевич писал(а):
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;
}

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

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

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

СообщениеДобавлено: 06 фев 2019 13:55
Gnus10
Алек(андр писал(а):Изображение

Так это и понятно, что на нее ругается, вопрос в том где резать :)

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+ОченьДлиннаяПеременная вызовет ошибку не в том, что переменная не определена, а в том что имя слишком длинное.

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

СообщениеДобавлено: 06 фев 2019 15:38
Алек(андр
Определите переменную вместо FasadBandMater Назовите её как у Романа FasKrom и подставляйте как значение параметра для прототипа

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

СообщениеДобавлено: 06 фев 2019 16:38
Gnus10
Алек(андр писал(а):Определите переменную вместо 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;         //-- Расположение ручки

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

СообщениеДобавлено: 06 фев 2019 17:04
Алек(андр
Надо чайку попить :)

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

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


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

Длина имени переменной больше 12 символов не допускается.

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

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

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

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

СообщениеДобавлено: 06 фев 2019 17:07
Алек(андр
Вот же всё написал

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

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

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


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

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

СообщениеДобавлено: 06 фев 2019 19:49
Gnus10
Спасибо! Все заработало!

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

СообщениеДобавлено: 06 фев 2019 23:25
Алек(андр
Простите, не удержался :)
По началу, оно почти всегда так! Пока заработает....

Изображение

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

СообщениеДобавлено: 07 фев 2019 19:26
Gnus10
Примерно так и было :)
Еще раз спасибо за помощь!