|
|
|
|
|
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..
|
Просмотров: 436757
|
25.07.2018, 20:07
|
#211
|
Модератор
Регистрация: 14.04.2010
Адрес: Псков
Сообщений: 2,399
Сказал(а) спасибо: 14,273
Поблагодарили 20,681 раз(а) в 2,725 сообщениях
Вес репутации: 4618
|
Цитата:
Сообщение от Kartuz
и выделяются такие детали
|
А встроенное "Выделение по ..." чем не устраивает?!
__________________
Старайся делать хорошо! Плохо само получится...
|
|
|
26.07.2018, 09:16
|
#212
|
Пользователь
Регистрация: 16.12.2014
Сообщений: 32
Сказал(а) спасибо: 25
Поблагодарили 5 раз(а) в 5 сообщениях
Вес репутации: 0
|
Скорость... Всё очень просто. Вы наверняка знаете, что скрипты можно запускать по горячим клавишам. В скрипте ( в разных скриптах ) можно прописать отдельные группы материалов ( в одном стёкла, зеркала. В другом фасады мдф разных толщин и т.д ) Указанным Вами способом ( Ну совсем за дурака меня посчитали )))) ) долго (относительно скриптов )
|
|
|
26.07.2018, 09:48
|
#213
|
VIP
Регистрация: 04.07.2012
Сообщений: 1,957
Сказал(а) спасибо: 3,992
Поблагодарили 3,546 раз(а) в 1,168 сообщениях
Вес репутации: 1048
|
добавил в скрипт выделения панелей сообщение если какие-то позиции не найдены:
Код:
UnSelectAll();
var positions = prompt("Введите номера позиций через пробел");
var nums = positions.split(' ');
var finded = [];
function contains(arr, elem) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === elem) {
return true;
}
}
return false;
}
Model.forEach(function(obj) {
if (obj) {
if (nums.indexOf(obj.ArtPos) >= 0) {
obj.Selected = true;
finded.push(obj.ArtPos);
}
}
})
str = '';
for (i=0;i<nums.length;i++){
if (!contains(finded, nums[i])){
str=str+nums[i]+',';
}
}
if (!str==''){
alert('Не найдены позиции: '+str)
}
ПС. как вставить код с сохранением форматирования?
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
|
|
|
7 пользователя(ей) сказали cпасибо:
|
|
26.07.2018, 10:11
|
#214
|
Местный
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 403
|
Цитата:
Сообщение от bbb i ko
ПС. как вставить код с сохранением форматирования?
|
Вставить его в тэг CODE.
|
|
|
Пользователь сказал cпасибо:
|
|
26.07.2018, 12:25
|
#215
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
|
Цитата:
Сообщение от Kartuz
Нужен простенький скрипт выделения деталей из определённых материалов. К примеру, в модели есть стекло 4мм и зеркало. Нажимаем скрипт и выделяются такие детали.
|
Вот пример для выделения объектов с материалами "Зеркало 4 мм (Артикул 80)" и "Стекло 5 мм (Артикул 81)":
Код:
const materials = [
'Зеркало 4 мм\r80',
'Стекло 5 мм\r81'
]
UnSelectAll();
Model.forEach(function(obj){
if (obj && obj.MaterialName){
if (materials.indexOf(obj.MaterialName) >= 0){
obj.Selected = true;
}
}
})
Как я понял, вам нужен был пример для фиксированного списка материалов, чтобы вы на его основе сделали скрипты для своих списков. В этом коде достаточно только изменять массив materials. Обратите внимание на символ "\r" - этот непечатаемый символ используется как разделитель между наименованием материала и артикулом. В поле MaterialName у объекта - полное имя, содержащее наименование и артикул, поэтому и в массиве материалов должно быть полное имя материала. Если у материала нет артикула, то полное имя будет совпадать с наименованием материала.
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
27.07.2018, 08:08
|
#216
|
Местный
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
|
Как получить активную кромку
типа такого kromka = Model.ActiveMaterialButt()
|
|
|
27.07.2018, 11:31
|
#217
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
|
Цитата:
Сообщение от wizardpnz
Как получить активную кромку
типа такого kromka = Model.ActiveMaterialButt()
|
Я нашел только "Action.Properties.ActiveButtMaterial", но что бы я не пытался сделать, он всегда возвращает undefined. Такая же ситуация с "Action.Properties.ActiveMaterial".
|
|
|
27.07.2018, 21:26
|
#218
|
Местный
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
|
А как-то в VisualCode можно поиск по дереву объектов сделать, может много интересного отыскать.
|
|
|
29.07.2018, 14:12
|
#219
|
Новичок
Регистрация: 14.09.2017
Сообщений: 6
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Подскажите куда выводятся сообщения с system.log(). Этот файл вообще существует. Запуск скриптов провожу через Visual Code. Стоит Базис 10.
|
|
|
29.07.2018, 15:32
|
#220
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
|
Цитата:
Сообщение от partner_servis
Подскажите куда выводятся сообщения с system.log(). Этот файл вообще существует. Запуск скриптов провожу через Visual Code. Стоит Базис 10.
|
system.log() выводит сообщения в стандартный редактор скриптов в Мебельщике. Если запускаете через VS Code, то можно просто открыть редактор скриптов - после выполнения скрипта, весь лог будет в нём.
|
|
|
Пользователь сказал cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 00:32. Часовой пояс GMT +3.
|