AlterEgo

Скриптописатели! Давайте общаться

26 сообщений в этой теме

Всем привет. Взялся я всё-таки ковырять скрипты, есть много вполне алгоритмиируемых задач, нередко выполняемых вручную. Хочется себе жизнь облегчить.

Есть у нас тут опытные или интересующиеся или начинающие, как я?

У меня вот сразу на первых этапах начали возникать вопросы.

Например, есть ли возможность использовать сторонние редакторы скриптов? А то, я думаю, очень скоро начнёт сильно не хватать отладочных функций.

Ну, и по конкретным ситуациям. С утра упёрся в вопрос, никак не могу его перешагнуть. Как проверить параллельность панелей? Да и в целом, как узнать, является ли панель фронтальной, горизонтальной или вертикальной? Или повёрнутой относительно какой-то (каких-то) оси (осей)?

 

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, AlterEgo сказал:

Как проверить параллельность панелей?

Можно проверить измеряя угол между плоскостями, если угол 0, то плоскости (а значит и панели) параллельны.

Если смотреть относительно осей, то можно измерить угол между отрезками - один отрезок это ребро панели, а другой, например, ребро габаритной рамки (это рамка ведь точно по осям строится). В общем то относительно осей можно также измерять при помощи угла между панелями

01.jpg

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Slava0319, как это руками сделать, я понимаю. Не могу сообразить, как это сделать скриптом.

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

да, тут я вам не помощник :dntknw: не в свою тему влез. скриптами сильно не увлекся.

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Народ не подскажите как в скрипте менять материалы? Хотелось что бы скрипт с моей базой работал. Кто знает? В пример можно на дверях купе. И например как добавить  уплотнитель для стекла?

Изменено пользователем Dimon007
0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
58 минут назад, Dimon007 сказал:

как в скрипте менять материалы

Материал указывается для каждой конкретной панели после её создания. У объектов Panel имеется свойство MaterialName, в котором указывается наименование мателиала. Я так понимаю, именно по уникальному наименованию материала Базис и ориентируется.

...
MyPanel = AddPanel();
MyPanel.MaterialName = "ЛДСП 16 Венге";
...

Хотя нет, обнаружил ещё функцию SetMaterial, позволяющую установить активный материал.

Текущий материал можно выяснить из глобальной переменной ActiveMaterial (хранит значение типа FurnMaterial) и из её свойства Name

NameOfCurrentMaterial = ActiveMaterial.Name

По работе с базой материалов прокомментировать не могу ничего. Непонятно.

На сайте Базиса есть руководство - несколько более полное и структурированное, чем справка из комплекта. Но тоже больше подходит в качестве справочника для того, кто уже более или менее знаком со всеми Базисовскими объектами и прочим, и просто забыл название. Надо пытаться решать вопросы на основании тех примеров скриптов, которые идут с базисом, разбираться...

Для того, собственно, я эту тему и создал, да что-то откликов совсем нету.

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, AlterEgo сказал:

 Надо пытаться решать вопросы на основании тех примеров скриптов, которые идут с базисом, разбираться...

Для того, собственно, я эту тему и создал, да что-то откликов совсем нету.

вот нашел 

    PosY2;
        ActiveMaterial.Make('ЛДСП', 16);
        Ydsp1 = (SectionRaz - (Section + HeightProfCentr) * (Count - 1)) + 8
        Ydsp = Math.floor(Ydsp1);
        DSP = AddFrontPanel(LeftDsp, PosY2 - 8, RightDsp, Ydsp + PosY2, DspProfCback);
        DSP.TextureOrientation = ftoVertical;
        DSP.Name = "Наполнение"
        PosY2 = Section + HeightProfCentr + PosY2;

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да это-то понятно. Но у вас тут нет никакого обращения к базе материалов. А вопрос же был

2 часа назад, Dimon007 сказал:

Хотелось что бы скрипт с моей базой работал

ActiveMaterial.Make в базу материал вносит? Сомневаюсь. Нет ни указания, куда конкретно в базе его внести, ни возможности указать прочие свойства материала (единицы измерения и прочие).

То ли такой возможности в принципе не предусмотрено (за исключением разбора структуры файла базы материалов и прямого обращения прямо к этому файлу, минуя базис), то ли в справочниках она не прописана... не понятно.

Изменено пользователем AlterEgo
0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, AlterEgo сказал:

Да это-то понятно. Но у вас тут нет никакого обращения к базе материалов. А вопрос же был

 

Все работает. Я понял так: если имя совпадает с базой, то происходит замена на текущий материал с его заданной текстурой. Спасибо. 

Да я пытаю понять нужны мне эти скрипты, сейчас чисто фрагментами "разруливаю" и по времени не дольше получается.

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Dimon007 сказал:

если имя совпадает с базой

А если не совпадает? Тупо добавляется деталь указанного материала, но материал продолжает отсутствовать в базе? Правильно я понимаю?

Ну и возвращаясь в самый верх. Не знаете ответ на вопрос, сформулированный в первом сообщении? А то скрипт-то написал, но абсолютно незащищённый от дурака и от неосторожности. Т.е. если указать непараллельные панели там, где по сценарию нужны параллельные (или наоборот), - результаты полностью перестают быть предсказуемыми.

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, AlterEgo сказал:

А если не совпадает? Тупо добавляется деталь указанного материала, но материал продолжает отсутствовать в базе? Правильно я понимаю?

Ну и возвращаясь в самый верх. Не знаете ответ на вопрос, сформулированный в первом сообщении? А то скрипт-то написал, но абсолютно незащищённый от дурака и от неосторожности. Т.е. если указать непараллельные панели там, где по сценарию нужны параллельные (или наоборот), - результаты полностью перестают быть предсказуемыми.

Сделал так. Возьмем эти же в пример  двери купе. В смете вертикальный профиль у меня записан как "Ветрикальный профиль С", вот прописываю его в скрипте. Но скрипт еще добавляет цвет профиля ручки(можно убрать эту строку если надо) и в итоге получается "Ветрикальный профиль С шампань". И когда вывожу смету делаю просто соответствие этих материалов. А если нет желания каждый раз делать соответствие, создаешь просто погонный материал на каждый цвет. К примеру   "Ветрикальный профиль С шампань", Ветрикальный профиль С бронза" и  т.д. Ну и конечно можно задать определенный цвет материалу. Как то так.

Изменено пользователем Dimon007
0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, Dimon007 сказал:

А если нет желания каждый раз делать соответствие, создаешь просто погонный материал на каждый цвет. К примеру   "Ветрикальный профиль С шампань"

А я в этом скрипте материалы поменял на просто "Алюминий". Достало в визуализации каждому профилю цвет прописывать :)

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, AlterEgo сказал:

А я в этом скрипте материалы поменял на просто "Алюминий". Достало в визуализации каждому профилю цвет прописывать :)

А есть какие нибудь грамотные уроки по созданию скриптов?

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dimon007, про JavaScript в целом-то - на каждом углу в нэте уроки. Тут вопрос именно про API Базиса. Как-то бы его более структурированно бы что ли, чем то, как оно в справке. И примеров в справке почти нету. Грусть прям.

У меня такое ощущение, что все скрипты, которые приложены в комплект Базиса, написаны их же программистами. Как в их API смог бы разобраться по такой справке кто-то со стороны, даже представить сложно.

Был вон товарищ  jek-s.on, так не откликается чего-т. Я его уже и через личку позвал, месяц уже почти сообщение непрочитанным болтается... :(

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
19 минут назад, AlterEgo сказал:

У меня такое ощущение, что все скрипты, которые приложены в комплект Базиса, написаны их же программистами. Как в их API смог бы разобраться по такой справке кто-то со стороны, даже представить сложно.

Да есть такое ощущение, что новые скрипты могут подготовить только программисты. Это мне напомнило когда еще в школе всякие интернет странички писали в блокноте. Прописывали все - сущий ад. Но потом появилась программа "Фишер" вроде так называлась, это тоже свое-ый инструмент для создания интернет страничек. Вот была по такому же принципу программа для создания скриптов Базиса 8. 

А то реально что бы написать скрипт, нужно изучить язык программирования)))) 

 

Че то меня разочаровывают эти скрипты, легче создавать фрагменты.

Изменено пользователем Dimon007
1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, Dimon007 сказал:

А то реально что бы написать скрипт, нужно изучить язык программирования)))) 

Нет, ну понятно, что JavaScript знать надо, этого-то я не отрицаю. Но сам язык довольно прост, мне лично хватило простого ознакомления с синтаксисом, описанном в том самом pdf, который на сайте базиса лежит. 

А вот библиотеки объектов, написанные Базисцентром, задокументированы из рук вон плохо. Тупо справочник для тех, кто уже знает, какая функция или объект нужен, но забыл параметры или название свойств и методов.

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

AlterEgo, Доброе утро! Тоже заинтересовался написанием скриптов под себя. Но пока ничего не понимаю в этом:) готов на совместное осваивание скриптов)

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

pkdeep, приветствую!

Ну, я пока ограничиваюсь мелочами - иногда что-то где-то подправляю в тех скриптах, которые в комплекте с Базисом, как мне удобней, что-то для "попробовать" пытаюсь писать. Всё страдаю от отсутствия внятной документации. Видимо, Базис-центр очень хочет сам обучать желающих. Не хотят самоучек поддерживать. :(

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, AlterEgo сказал:

pkdeep, приветствую!

Видимо, Базис-центр очень хочет сам обучать желающих. Не хотят самоучек поддерживать. :(

Доброе утро!) Я сомневаюсь что базис будет обучать письму скриптам, это же просто язык програмирования явы, типа кто хочет сам изучит.

У меня пока у самого мало что получилось попровать, поэтому пока что делаю все через резиновые блоки

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, pkdeep сказал:

это же просто язык програмирования явы

Я ж писал об этом выше. Язык - языком (кстати, не надо путать Java и JavaScript - два совершенно разных языка). И с ним-то, с языком, проблем нету. Всё просто и довольно обыкновенно. И синтаксис несложный, и в остальном, в целом всё ясно. Я хоть и давненько последний раз за всякие там C++ да Паскали, да прочее ООП садился, но ничего принципиально непонятного не увидел. 

Проблема именно в Базисовском API, который приходится изучать методом научного тыка либо вычитывая и пытаясь понять готовые скрипты (те, что в комплекте).

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, AlterEgo сказал:

Я ж писал об этом выше. Язык - языком (кстати, не надо путать Java и JavaScript - два совершенно разных языка). И с ним-то, с языком, проблем нету. Всё просто и довольно обыкновенно. И синтаксис несложный, и в остальном, в целом всё ясно. Я хоть и давненько последний раз за всякие там C++ да Паскали, да прочее ООП садился, но ничего принципиально непонятного не увидел. 

Проблема именно в Базисовском API, который приходится изучать методом научного тыка либо вычитывая и пытаясь понять готовые скрипты (те, что в комплекте).

Наверное мы разговариваем на разных языках пока что))) просто я совсем не шарю в программировании))) сейчас смотрю вебинар записанный базисом по скриптам, может что то полезное увижу)

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, pkdeep сказал:

сейчас смотрю вебинар записанный базисом по скриптам, может что то полезное увижу)

Во-во. Тоже только что на него наткнулся. :)

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

AlterEgo, еще нашел пару скриптов для БМ в свободном доступе)

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выкладывай :)

0

...Когда нас учит жизни кто-то
- я весь немею.
Житейский опыт идиота
я сам имею.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, AlterEgo сказал:

Выкладывай :)

Отправил в ЛС)

0

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!


Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.


Войти

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.