БАЗИС 10 - Скрипты
Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
|
Здравствуйте!
Как можно перебрать все объекты? В базис 9 данный код работал.Сейчас,я так понимаю, видит только внешние объекты,вложенные нет.Если есть слои в проекте,то останавливается на слоях. Возможно нужно рекурсивно обходить,только как,пока не понимаю. Скрытый текст//Перебираем все объекты Model.forEach (function(obj) { alert(obj.Name); if (obj.Name[0]=="#") { StartEditing(obj); obj.Selected = true; if (obj.Name[1]=="M" || obj.Name[3]=="M") { create_article_milan(obj); obj.Name = name_block; // Задаем артикул для серии Quadro } else if (obj.Name[1]=="Q" || obj.Name[3]=="Q") { create_article_Quadro(obj); obj.Name = name_block; // Задаем артикул для ателье } else if (obj.Name[1]=="A") { create_article_Atelie(obj); obj.Name = name_block; } } }); [свернуть] |
Получилось решить самостоятельно.Вот решение,как перебрать объекты
Решение через рекурсию: Скрытый текстКод:
Recurse(Model); [свернуть] |
Всем привет.
Возникла необходимость переноса скриптов на Базис 10. 1.node.js надо ставить или оно в комплекте? или оно надо только если использовать TypeScript ,debug и модули от node? 2. почему в комплекте поставке Базис 10 не работающие скрипты ?(здесь ведь есть представители Базиса?). в частности require же в node по другому работает. 3.Документация по скриптам актуализирована?(насколько я понял нет). Будет ли это сделано в ближайщее время? Господа из Базиса Вы делаете хороший продукт. Но без документации это пипец просто ( да я слышал что "скрипты поставляются как есть"), но зачем тратить время людей - напишите документацию по человечески. Нашел аккаунт на GitHub - там тоже какие то обрывки информации. Хорошо хоть инструкцию как настроить debug выложили. Правда на этот GitHub ссылок как бы нигде особо нет. В Базис 9 свойства объектов по перебору вычислял , сейчас еще веселее видимо будет. Извините если что вообщем. Хочется просто работать, а не искать и догадываться как тут у Вас все устроено, и не "выковыривать" свойства объектов перебором. |
Цитата:
Цитата:
В самом Node.js require работает иначе и работает с т.н. "модулями", для которых нужен свой стиль написания (возможно, скоро на гитхабе это будет описано) Цитата:
|
Цитата:
1.этот "весь движок" . к нему можно подключать модули от node ? npm и все такое? если "да" то как? 2. на гитхаб есть свежий пример использования модуля "fs" как он подключен? или часть модулей защиты в .dll? (хотелось бы толковый обзор что да как там у Вас реализовано..) 3. Так как же теперь использовать require? очень хотелось бы инструкцию. (в коде много строк только require и спасал..) 4. Как теперь организовывать работу с COM объектами? (пример (который старый в новом Базисе) конечно же работает криво). в node надо отдельный модуль подключать для COM . Или минимальный пример бы как записать даннные в ячейку Exel через COM (данные из Базиса). Вопросов вообщем много,а примеров и документации нет. Спасибо если внесете какую то ясность. |
Прежде всего: Давайте, чтобы не засорять тему, все вопросы по поводу "что нового и как этим пользоваться" задавать мне в личные сообщения или на почту, а я буду править вики на гитхабе.
Цитата:
Цитата:
Цитата:
Цитата:
|
Не знаю как у других,у меня одно большое КАК?Вышли новые инструменты,новые возможности.Что это такое,как настраивать,как устанавливать,как с этим работать и что это дает.Если есть возможность записать видео,то это было бы очень круто.
|
Вложений: 2
function ArrangePositions() {
if (Action.Control.Owner.Owner.dpModelTree.Visible == False) { Action.Control.Owner.Owner.a3ModelTreeExecute(); } if(confirm('Будет выполнена расстановка позиций. Продолжить?')) { if (Action.Control.Owner.Owner.dpModelTree.Visible == True) { Action.Hint = 'Расстановка позиций...'; Action.Control.Owner.Owner.dpModelTree.Controls[1].BtnArrangeClick(); return True; } else { alert('Закрыт инструмент <Структура модели>!'); } } else { alert('Отменено пользователем!'); } return False; } У меня тоже перестал работать скрипт, который постоянно использую. Пишет ошибку: TypeError: Cannot read property 'Visible' of undefined (см. картинку). Может есть тут гуру скриптов, которые смогут помочь "подкрутить скрипт". |
На самом деле немного странное решение с новым движком для скриптов. У многих, я знаю, почти вся работа завязана на скриптах.
Им теперь получается всё переписывать заново? Вроде бы никто не писал, что что-то не устраивает. Зачем были эти нововведения, когда ТП отвечает, мол мы возможность скриптов сделали - а дальше сами думайте как с этим работать. Может есть какой-то шаблон по переводу скриптов на новый движок? Может переменный как-то по другому объявлять или синтаксис поменять.... |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Сейчас он открывает панель, если она закрыта, и продолжает работу. |
Доброго.
Подскажите, возможно ли с помощью скрипта реализовать такую задачу? Необходимо нужные панели с модели перенести в чертёж и образмерить. Панели могут находится в разных плоскостях. Но выносится они должны на один лист, а не по отдельности. В итоге нужно получить развёртку всех фасадов кухни в одной плоскости на одном листе. Знающие, подскажите, возможно ли такое реализовать? |
Цитата:
Но есть обходные пути типа : 1.Node.js позволяет работать с COM объектами(хотя и довольно проблематично). Вытаскиваем из Базиса данные (это легко) - подключаемся по COM к API , имеющегося какого нибудь приличного САПР - с помощью API этого САПР, формируем необходимые Вам чертежи , в каком нибудь .dxf, или чего там Ваша САПР поддерживает. 2. Вытаскиваем из Базиса данные (это легко) и транслируем в какой нибудь промежуточный формат (.xlsx .xml или еще чего) , для node.js готовых трансляторов вагон. я в Exel легко доступные данные выгружаю. Теперь, опять же берем имеющуюся САПР, и с помощью ее API парсим получившийся файл и отрисовываем чертеж. я бы выбрал второй путь, т.к. COM из Node.js - у меня пока нет столько skills, да и вообще это один большой "костыль" как мне думается. из минусов второго пути - это два отдельных скрипта, запускать надо будет по отдельности. ну и надо какой нибудь САПР + прямые руки ). P.S.САПР -система автоматизированного проектирования (AutoCAD,nanoCAD,SolidWorks,Компас) и т.д. |
Цитата:
|
Цитата:
http://s014.radikal.ru/i326/1708/80/f5c15199adf7t.jpg http://s018.radikal.ru/i521/1708/e0/b8fc97d93af5t.jpg |
Цитата:
|
Цитата:
Все актуальные руководства укомплектованы в актуальных релизах. А перед тратой времени на съемку внимательно прочитали бы, что написано на сайте в разделе [Файловый архив] Цитата:
|
Всем добрый день.
Возник следующий вопрос Создаю блок Код:
var newBlock = AddBlock(blockName); При этом я НЕ делаю Код:
Action.Commit(); Дело в том что я нашел только Код:
Action.SaveModel(); Если я использую Action.Commit(); , у меня еще и ссылки на ранее загруженные блоки почему то слетают. Плюс насколько я понял нужно сперва удалить все с модели (кроме необходимого блока) - потом сохранить модель - потом откатить изменения - как то это проблематично. Action.SaveModel(); это единственный путь в данном случае? |
Подскажите добрые люди, как теперь в скриптах использовать схемы крепежа?
|
Цитата:
Два варианта взаимодействия со схемами: создание с нуля и загрузка из старого формата (файла fasteners.config). Нашел еще один хак: Можно через поле выбора фурнитуры выбрать схему и у поля вызвать метод Mount. Вот упрощенный пример: Код:
var furnSel = NewFurnitureInput("схема"); Скрытый текстКод:
/** [свернуть] P.S. Так как схемы крепежа со времен девятки изменились, то, скорее всего, часть API для взаимодействия со схемами нужно поменять, поэтому подсказку для схем удалили, но старые функции, методы и свойства пока еще остались. |
Contour.Approximate()
Сообщите, пожалуйста, параметры. Она, наверно, даёт отрезки, или точки.? |
PHP код:
|
Доброго вермени суток.
Уже отвечали про схемы крепежа, но не очень помогло. В примерах скриптов базиса схема открывается через OpenScheme. Закинул в папку примера свой Fasteners.config - не заработало, прописал до него путь, то же самое. Прописал путь до файла в фурнитуре, так же не заработало. В мануале вычитал про OpenFurnitureScheme/OpenFurnitureSchemes - результат ровно такой же как и с OpenScheme. Может кто кодом показать как установить схему крепежа между двух панелей в 10-ом базисе? Буду премного благодарен. |
Цитата:
|
Цитата:
При установки схем через FurnitureInput имеем выходные данные в виде InFurniture, в которой нет способа задать базу расстановки для схемы. В итоге схема ставится без растягивания, как в исходнике. При ScriptFurnitureProperty в итоге то же самое. Может быть есть какой-то вариант указать базу? |
Цитата:
|
Очень нужна схема замены фурнитуры. Что то вроде того как реализована схема замены материалов. Очень часто произвожу замену одной и той же фурнитуры, выбирая каждую по отдельности. В скриптах я на уровне чайника, может кто поможет?
|
Цитата:
|
Цитата:
|
Вложений: 1
Конкретно по Вашему вопросу
Цитата:
Цитата:
|
Цитата:
Пока такая схема не реализована в Базисе, поэтому я обращаюсь с вопросом. Кто сможет написать такой скрипт, или может у кого нибудь уже есть? В долгу не останусь. |
Спасибо за разъяснение, извиняюсь за недопонимание. Первым делом посоветовал бы обратиться в ГТП с предложением по добавлению такого функционала (хотя, думаю, этот шаг уже пройден). Если ответа нет, или Вам не хочется ждать, то я могу взяться за написание такого скрипта. Предлагаю обсудить подробности в ЛС или по почте.
|
Добрый день. Позаимствовал и переделал немного скрипт товарища тех.нолог, который меняет артикул в салоне, в зависимости от реальных габаритов. В мпл 9 он работает и переименовывает артикул, в мпл 10 выполняется, но артикул не изменяется. Подскажите почему. подозреваю, что теперь скрипты в МПЛ не просто меняют артикул, а полноценные.
Скрытый текстfunction GetArt() {
//основные переменные NameArt = 'нря+1м';//код артикула до размера w = (TovarItems.TovarModel.GSize.x );//реальная ширина модели в мм l= (TovarItems.TovarModel.GSize.z );//реальная глубина модели в мм SzWidth = (w.toFixed()); SzLength = (l.toFixed()); x = SzLength; y = 49; //переменные размеров //функция ((SzWidth > 300 && SzWidth < 1000) && (SzLength > 379 && SzLength < 603)) Art = NameArt + '(ш' + SzWidth + 'мм х г' + (x - y) + 'мм)'; alert( 'Установленная ширина ' + SzWidth + ' мм' + ' и глубина ' + (x-y) + ' мм' ) return Art; }; GetArt(); [свернуть] //не знаю как задать запрос в гугл правильно) в общем, подскажите как "Art" отправить в строку наименования (а не в артикул, я так понимаю теперь это можно делать) |
Цитата:
Код:
TovarItems.TovarArticul = GetArt() Цитата:
Код:
TovarItems.TovarName = GetArt() |
И еще вопрос: можно ли задавать скрипт на весь проект в расстановке. Например, чтобы при нажатии на "Завершение расстановки" выдавался алерт, если не выполнено какое-то условие. Или на какие-то товары, допустим в шкафах есть элементы-болванки с каким-то определенным именем, которые обязательно надо заменить, и если замена не произведена, выдавало алерт.
|
Цитата:
|
Скрипты для Базис Мебельщик 10
Добрый день! Подскажите пожалуйста почему не работаю скрипты для 10 версии. Были созданы в 9 версии и все работало.
Показал данную проблему программисту, попробовали написать в редакторе скриптов вот это и запустить alert("hello"); Но выдало ошибку. В чем проблема. Спасибо |
|
Текущее время: 12:04. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL