|
|
|
|
|
06.06.2017, 08:56
|
|
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565
Сказал(а) спасибо: 303
Поблагодарили 451 раз(а) в 189 сообщениях
06.06.2017, 08:56
Рейтинг:
()
Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
Последний раз редактировалось systland; 26.12.2017 в 11:52..
|
Просмотров: 434148
|
15.10.2018, 09:31
|
#281
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от Last81
помогайте форумчане.
Panel.AddPlastic(МатLak,true);
строчка кода наносит пластик на панель. а какой код позволяет назначить ориентацию текстуры пластика?
|
Функция "Panel.AddPlastic(МатLak,true);" возвращает объект, отвечающий за свойства пластика. У него меняете ориентацию текстуры, и всё:
Код:
var pl = Panel.AddPlastic(MatLak, true);
pl.TextureOrientation = TextureOrientation.Vertical;
|
|
|
Пользователь сказал cпасибо:
|
|
21.10.2018, 19:34
|
#282
|
Пользователь
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
|
подскажите минимальный код чтобы скопировать панель (TFurnPanel) из одного блока базиса в другой. Один блок есть в модели, другой создается скриптом ранее.
|
|
|
22.10.2018, 10:00
|
#283
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от IStiv
подскажите минимальный код чтобы скопировать панель (TFurnPanel) из одного блока базиса в другой. Один блок есть в модели, другой создается скриптом ранее.
|
Не знаю, насколько минимальный, но решил поподробнее разобрать обе ситуации: копирование из модели во временный блок и наоборот. Сперва код:
Код:
//Копирование во временный блок, созданный скриптом
// исходная панель, которая будует копироваться
var p = GetPanel('Panel');
// временный блок, в который будет добавлена панель
var block = AddBlock('NewBlock');
// копия панели
var copy = AddCopy(p);
// "запихиваем" панель в блок
copy.Owner = block;
//Копирование в блок модели
// копия с копии, созданной кодом выше
var newCopy = copy.Clone();
// "запихиваем" панель в блок, в котором была исходная панель
newCopy.Owner = p.Owner;
// перестраиваем копию копии
newCopy.Build();
// создаем запись в истории о том, что была добавлена панель
Undo.Added(newCopy);
Теперь о том, почему в разных ситуациях разный код:
В случае копирования из модели во временную область (где хранятся все объекты, созданные скриптом, но ещё не записанные в модель), большую часть операций по правильной записи объекта в модель берёт на себя БМ, поэтому достаточно просто создать копию панели и задать ей свойство Owner (при условии, что этот Owner тоже находится во временной области).
Если копировать напрямую в модель (необходимо для того, чтобы, например, поставить панель сразу в нужный по иерархии блок), то нужно самому записать это действие в историю (что делает Undo.Added) и перестроить объект (метод Build). Также для создания "рабочей" копии используется метод Clone у объекта. Делается это потому, что метод Clone, в отличие от AddCopy создаёт копию с новым UID, а AddCopy создает с UID равным -1. Ошибок при использовании объекта с UID=-1 я не встречал, но лучше перестраховаться, ведь UID - уникальный идентификатор, и иметь несколько объектов с одинаковыми уникальными идентификаторами может быть опасно.
|
|
|
7 пользователя(ей) сказали cпасибо:
|
|
26.10.2018, 10:30
|
#284
|
Местный
Регистрация: 16.06.2008
Адрес: Подольск Мск Обл
Сообщений: 685
Сказал(а) спасибо: 1,487
Поблагодарили 801 раз(а) в 237 сообщениях
Вес репутации: 421
|
Гуру скриптов, подскажите можно ли сделать следующий скрипт и если да сложно ли это: мне постоянно нужны виды изделия-аксонометрия с "лица" изделия и с тыльной части т.е. с поворотом на 160грд., сейчас делаю так беру модель ставлю ее в нужный ракурс копирую в буфер, вставляю в 2д сборочный лист, возвращаюсь в модель поворачиваю на 160грд копирую в буфер, снова вставляю в 2д чертеж получаю общ вид изделия с двух сторон. Вот подумал можно ли это реализовать скриптом? (В создании скриптов не разбираюсь совсем, но если это реализуемо то попробую разобраться)
на картинке нужный результат
|
|
|
26.10.2018, 12:07
|
#285
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от Dima1313
Гуру скриптов, подскажите можно ли сделать следующий скрипт и если да сложно ли это: мне постоянно нужны виды изделия-аксонометрия с "лица" изделия и с тыльной части т.е. с поворотом на 160грд., сейчас делаю так беру модель ставлю ее в нужный ракурс копирую в буфер, вставляю в 2д сборочный лист, возвращаюсь в модель поворачиваю на 160грд копирую в буфер, снова вставляю в 2д чертеж получаю общ вид изделия с двух сторон. Вот подумал можно ли это реализовать скриптом? (В создании скриптов не разбираюсь совсем, но если это реализуемо то попробую разобраться)
|
Если вам нужны эти виды в 2д-окне, то скриптом не получится сделать. Если в 3д-окне, то можно решить это установкой вида "Аксонометрия" и созданием развёрнутой назад копии.
|
|
|
Пользователь сказал cпасибо:
|
|
26.10.2018, 14:45
|
#286
|
Местный
Регистрация: 11.08.2012
Адрес: Киев
Сообщений: 936
Сказал(а) спасибо: 5,370
Поблагодарили 3,884 раз(а) в 874 сообщениях
Вес репутации: 1099
|
Цитата:
Сообщение от Dima1313
нужны виды изделия-аксонометрия с "лица" изделия и с тыльной части
|
В этой теме стр.25, с поста #245 обсуждение скрипта для ракурсов модели.
Скрытый текст
Назначил себе несколько - очень удобно.
[свернуть]
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
26.10.2018, 16:17
|
#287
|
Местный
Регистрация: 16.06.2008
Адрес: Подольск Мск Обл
Сообщений: 685
Сказал(а) спасибо: 1,487
Поблагодарили 801 раз(а) в 237 сообщениях
Вес репутации: 421
|
Цитата:
Сообщение от Letos
Если вам нужны эти виды в 2д-окне
|
да, нужны так
Цитата:
Сообщение от Letos
то скриптом не получится сделать
|
жаль...
Цитата:
Сообщение от Letos
Если в 3д-окне, то можно решить это установкой вида "Аксонометрия" и созданием развёрнутой назад копии.
|
в таком варианте особого выйгрыша во времени не видно, все равно придется копировать и вставлять, но тогда сразу две модели, а модели иногда тяжелые и две сразу будет трудно "переваривать" базису.
спасибо за ответ. ( а есть где то скрипт который сделает копию выделенного с разворотом на 180грд?, попробовать )
Цитата:
Сообщение от Tehnik
В этой теме стр.25, с поста #245 обсуждение скрипта для ракурсов модели.
|
а можно эти скрипты как то на отдельную кнопку на панель вывести? (а то лезть каждый раз в скрипты и запускать его, по времени тоже что и выбрать ракурс в стандартном меню)
|
|
|
26.10.2018, 16:22
|
#288
|
VIP
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
|
Цитата:
Сообщение от Dima1313
а можно эти скрипты как то на отдельную кнопку на панель вывести?
|
Горячие клавиши Вам в помощь :
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
26.10.2018, 17:04
|
#289
|
Местный
Регистрация: 16.06.2008
Адрес: Подольск Мск Обл
Сообщений: 685
Сказал(а) спасибо: 1,487
Поблагодарили 801 раз(а) в 237 сообщениях
Вес репутации: 421
|
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 1 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
|
выставляю ракурс как мне нужно запускаю этот скрипт, ничего не происходит, что делаю не так? (я думал выскочат значения положения камеры которые я должен потом вставить в скрипт который выложен на пару сообщений ранее)
|
|
|
26.10.2018, 17:25
|
#290
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от Dima1313
выставляю ракурс как мне нужно запускаю этот скрипт, ничего не происходит, что делаю не так? (я думал выскочат значения положения камеры которые я должен потом вставить в скрипт который выложен на пару сообщений ранее)
|
system.log выводит сообщения в лог редактора скриптов. Чтобы выскочило сообщение, можно использовать alert:
Код:
alert(JSON.stringify(Action.DS.Camera.ViewDirection));
P.S. проверил у себя: алерт может криво вывести сообщение, если оно не умещается в окне. Поэтому лучше будет использовать system.log, а значения посмотреть в логе редактора.
|
|
|
Пользователь сказал cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 06:12. Часовой пояс GMT +3.
|