Форум профессиональных мебельщиков PROMEBELclub
 
PROMEBELclub - Форум для мебельщиков: конструкторов, дизайнеров, мастеров, технологов и всех, кто имеет отношение к производству и изготовлению мебели. Программы для конструирования и дизайна мебели. Мебельная литература и обучающие пособия.
 
 

Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты


Реклама на портале PROMEBELclub
Реклама на портале PROMEBELclub

битрикс24 Мебель196. Мебельный интернет-магазин в Екатеринбурге.
Ответ
 
Опции темы Опции просмотра
Старый 13.01.2014, 12:22  
БАЗИС 8 - Скрипты
 
Аватар для Igor_482
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 145

Сказал(а) спасибо: 31
Поблагодарили 641 раз(а) в 84 сообщениях
Версия для печати Отправить по электронной почте
Igor_482 Igor_482 вне форума 13.01.2014, 12:22
Рейтинг: (7 голосов - 5.00 средняя оценка)

ВНИМАНИЕ! Правила выкладывания скриптов.

1. Если в скрипте нет ссылок на фурнитуру, фрагменты и.т.д то достаточно его упаковать в архив и выложить.

2. Если в скрипте есть ссылки на фурнитуру, фрагменты и т.д. то архив должен содержать папку с самим скриптом и всеми файлами на которые есть ссылки в тексте скрипта.


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

__________________________________________________ _______________

Интересует информация по редактору скриптов в БМ8. Существует ли справочная документация и примеры использования скриптов в БМ8. Какие возможности дает данная функция? Владеющим информацией по данному вопросу просьба поделиться ею.

Новое в скриптописании для БМ:

Скрытый текст

while (true)
Вот полный список новшеств, добавленных в скрипты с момента их выхода:

14 декабря 2014

Добавлена поддержка эластичных блоков

List3D : {
IsElastic: new HDefinition("?Boolean:", 'Являетсяли объект эластичным'),
ElasticResize: new HDefinition("?Vector:newSize", 'Растянуть объект до требуемых размеров'),
}

27 ноября 2014

Вспомогательные геометрические алгоритмы, реализованы в глобальном объекте geometry

geometry : new HDefinition("Geometry2D", 'Вспомогательные геометрические функции'),

Geometry2D : {
Intersect: new HDefinition("?Array.<Point>:elem1,elem2", 'Вычислить точки пересечения двухмерных элементов'),
Compare: new HDefinition("?Boolean:elem1,elem2", 'Сравнить элементы'),
Distance: new HDefinition("?Number:elem1,elem2", 'Найти кратчайшее расстояние между элементами'),
Area: new HDefinition("?Number:contour", 'Найти площадь контура')
}

17 ноября 2014

Работа с пользовательскими свойствами

Object3 : {
UserPropCount: new HDefinition("Number", 'Количество пользовательских свойств'),
UserProperty: new HDefinition('Array.<Object>', 'Значение свойства по его имени или индексу'),
UserPropertyName: new HDefinition('Array.<String>', 'Названия свойств')
}

Новые элементы управления на панели свойств

ScriptProperty: {
NewColor: new HDefinition("?ScriptColorProperty:'Название'", 'Создать свойство типа цвет'),
NewSeparator: new HDefinition("?ScriptProperty", 'Создать разделитель')
}

ScriptColorProperty: {
Value: new HDefinition("Number")
},

----------------------------------------------------------------------------------------------------
29 сентября 2014

system.apiVersion = 90 -> Bazis9
system.apiVersion = 85 -> Bazis8

----------------------------------------------------------------------------------------------------
15 сентября 2014

Contour2D : {
Min: new HDefinition("Point", 'Левый нижний угол охватывающего прямоугольника'),
Max: new HDefinition("Point", 'Правый верхний угол охватывающего прямоугольника'),
AddEquidistant : new HDefinition("?undefined:contour,offset,false,false", 'Добавить эквидистанту контура. Последние 2 параметры отвечают за направление и скругление')
}

ScriptProperty: {
OnDeactivate : new HDefinition("Function", 'Обработчик деактивации свойства или меню'),
OnValueValidate : new HDefinition("Function", 'Проверка корректности значения'),
ValueValid: new HDefinition("Boolean", 'Флаг корректности введенного значения, выставляется обработчиком OnValueValidate'),
Validate: new HDefinition("?Boolean:", 'Проверить значение свойства и вложенных свойств')
}

----------------------------------------------------------------------------------------------------
2 сентября 2014

ScriptProperty: {
NameEditable: new HDefinition("Boolean", 'Разрешить редактирование имени (для создания таблиц)'),
NewSeparator: new HDefinition("?ScriptProperty", 'Создать разделитель')
}

----------------------------------------------------------------------------------------------------
9 августа 2014

Добавлены подменю в кнопки

InButton : {
NewSubMenu : new HDefinition('?InButton:"Меню"', 'Создать подменю'),
Combo: new Definition("Boolean", 'Отдельная стрелка для подменю')
},

Добавлены всплывающие меню и цвет фона для всех свойств. Созданы обработчики активации и изменения свойства.
Прежнее событие OnChange срабатывало не только при изменении самого параметра, но и при изменении дочерних свойств.
OnValueChange срабатывает только при изменении значения свойства.

ScriptProperty: {
BackColor: new HDefinition("Number", 'Цвет фона'),
PopupMenu: new HDefinition("ScriptMenu", 'Всплывающее меню'),
OnActivate : new HDefinition("Function", 'Обработчик активации свойства пользователем'),
OnValueChange : new HDefinition("Function", 'Обработчик изменения свойства')
Tag: new HDefinition("Number", 'Пользовательское число'),
}

Добавлено выпадающее меню:

ScriptProperty: {
DropDownMenu: new HDefinition("ScriptMenu", 'Выпадающее меню')
}

----------------------------------------------------------------------------------------------------
21 апреля 2014:

Добавлены свойства и методы:

ScriptMaterialProperty: {
Width: new HDefinition("Number", "Ширина листа"),
}

ScriptButtProperty: {
Thickness: new HDefinition("Number", "Толщина кромки"),
Width: new HDefinition("Number", "Ширина ленты"),
}

Contour2D : {
IsPointInside: new HDefinition("?Boolean:x,y", "Находится ли точка внутри контура?"),
IsInContour: new HDefinition("?Boolean:contour", "Находится ли контур внутри другого?"),
IsClosedContour: new HDefinition("?Boolean:", "Является ли контур замкнутым?"),
IsContourRectangle: new HDefinition("?Boolean:", "Является ли контур прямоугольным?"),
OrderContours: new HDefinition("?Boolean:true", "Упорядочить элементы контура в одном направлении")
}


----------------------------------------------------------------------------------------------------
6 февраля 2014

Реализовано подключение и вызов функций COM и OLE объектов

ScriptProperty : {
Expanded: new HDefinition("Boolean", 'Развернуты ли вложенные свойства')
}

Добавлен метод:
NewCOMObject: new HDefinition("?IDispatch:'CLSID'", 'Создать новый COM объект по его типу')
[свернуть]

Нажмите на изображение для увеличения
Название: Базис.jpg
Просмотров: 1198
Размер:	36.4 Кб
ID:	86248

Обратите внимание на полезные ответы в этой теме!


Последний раз редактировалось systland; 26.12.2017 в 11:52.. Причина: Добавил объявление.
Просмотров: 793429
Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
Beard (20.06.2017), female (15.01.2016), Kerby (21.11.2015), v22884 (05.11.2014)
Старый 20.07.2020, 15:51   #1291
danzum
Новичок
 
Регистрация: 07.05.2018
Сообщений: 3
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 1 сообщении
Вес репутации: 0
danzum пока не определено
По умолчанию

Добрый день. Может кто-то подсказать как перезапустить скрипт заново из окна скрипта, может типа как кнопка

Скрытый текст

NewButtonInput("Закончить").OnChange = function() { Action.Finish() };
[свернуть]


Добавлено через 2 минуты
Вот весь скрипт

Скрытый текст

FileOptions = 'КріпленняПанелів.xml';

NewButtonInput("Закінчити").OnChange = function() { Action.Finish() };

function MakeProperties()
{
Prop = Action.Properties;
Type = Prop.NewCombo('Яку крепимо:','Горизонтальну\nВерикальну');
NumberOnTheSide = Prop.NewCombo('Кіл-ть кріплень по стороні:', 'Одне\nДва\nТри');
/// Поля вибору кріплення
Кріплення = Prop.NewGroup('Кріплення');
BlockVisible = Кріплення.NewFurniture('Видиме(конфірмат):');
BlockInVisible = Кріплення.NewFurniture('Приховане(стяжка):');
ShkantType = Кріплення.NewFurniture('Шкант:');
//// Розміщення
Розміщення = Prop.NewGroup('Розміщення');
ShcantWith = Розміщення.NewCombo('Ставити шкант:', 'Ні\nЗ обох боків\nЛіворуч або верх\nПраворуч або дно');
FurnVis = Розміщення.NewCombo('Видимі - невидимі сторони','Видима ліва, або верх\nВидима права, або дно\nОбидві видимі\nОбидві не видимі');
FastenerPosition = Розміщення.NewCombo('Положення другої частини', 'Знизу, чи ліворуч від панелі\nЗверхи, чи праворуч від панелі');
TypeBasing = Розміщення.NewCombo('База кріплення', 'Від переднього торця\nВід заднього торця');

InitialSize = Розміщення.NewNumber('+ до перш.кріп.від бази:', 18);
StepFastener = Розміщення.NewNumber('Крок кріплення:', 32);
}

MakeProperties()

Action.Properties.Load(FileOptions);

Action.OnFinish = function()
{
Model.UnPickAll();
Action.Properties.Save(FileOptions);
}

Bok1 = GetPanel("Оберіть ліву або верхню панель");
Bok2 = GetPanel("Оберіть праву або нижню панель");

x1 = Bok2.GabMin.x + 1;
x2 = Bok1.GabMax.x - 1;

BeginBlock("Крiплення");


while (true)
{
Polka = GetPanel("Виберіть панель що закріплюється");

if (FastenerPosition.Value == 'Зверхи, чи праворуч від панелі') {Py = Polka.GabMax.y - 1}
else {Py = Polka.GabMin.y + 1};

z1 = Polka.GabMin.z;
z2 = Polka.GabMax.z;

/////// Переросподіл заготівок між горизонтальними та верикальними
if (Type.Value == 'Горизонтальну')
{
CoordinateA = x2;
CoordinateB = x1;
CoordinateC = Py;
CoordinateD = Py;
}
if (Type.Value == 'Верикальну')
{
CoordinateA = Py;
CoordinateB = Py;
CoordinateC = x1;
CoordinateD = x2;
}


/////// Правила розміщення
if (TypeBasing.Value == 'Від переднього торця'){
ZKrep1 = Bok1.GabMax.z - InitialSize.Value;
while (ZKrep1 > z2 - StepFastener.Value) { ZKrep1 = ZKrep1 - StepFastener.Value }

ZKrep2 = ZKrep1 - StepFastener.Value;
while (ZKrep2 > z1 + 2 * StepFastener.Value) { ZKrep2 = ZKrep2 - StepFastener.Value }

ZKrep3 = ZKrep1 - StepFastener.Value;
while (ZKrep3 > (z2 / 2 ) + StepFastener.Value) { ZKrep3 = ZKrep3 - StepFastener.Value }
}else
{
ZKrep1 = Bok1.GabMin.z + InitialSize.Value;
while (ZKrep1 < z1 + StepFastener.Value) { ZKrep1 = ZKrep1 + StepFastener.Value }

ZKrep2 = ZKrep1 + StepFastener.Value;
while (ZKrep2 < z2 - 2 * StepFastener.Value) { ZKrep2 = ZKrep2 + StepFastener.Value }

ZKrep3 = ZKrep1 + StepFastener.Value;
while (ZKrep3 < (z2 / 2 ) - StepFastener.Value) { ZKrep3 = ZKrep3 + StepFastener.Value }

}



/////// Обидві видимі
function ОбидвіВидимі_1(){
BlockInVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1)
BlockInVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1)
}

function ОбидвіВидимі_2(){
ОбидвіВидимі_1();
BlockInVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2)
BlockInVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2)
}

function ОбидвіВидимі_3(){
ОбидвіВидимі_1();
ОбидвіВидимі_2();
BlockInVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep3)
BlockInVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep3)
}

if (FurnVis.Value == 'Обидві видимі'){
if (NumberOnTheSide.Value == 'Одне'){
ОбидвіВидимі_1();
}else if (NumberOnTheSide.Value == 'Два'){
ОбидвіВидимі_2();
}else if (NumberOnTheSide.Value == 'Три'){
ОбидвіВидимі_3();
}
}

/////// Видима ліва, або верх
function ВидимаЛіваАбоВерх_1(){
BlockInVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1)
BlockVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1)
}

function ВидимаЛіваАбоВерх_2(){
ВидимаЛіваАбоВерх_1();
BlockInVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2)
BlockVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2)
}

function ВидимаЛіваАбоВерх_3(){
ВидимаЛіваАбоВерх_1();
ВидимаЛіваАбоВерх_2();
BlockInVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep3)
BlockVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep3)
}

if (FurnVis.Value == 'Видима ліва, або верх'){
if (NumberOnTheSide.Value == 'Одне'){
ВидимаЛіваАбоВерх_1();
}else if (NumberOnTheSide.Value == 'Два'){
ВидимаЛіваАбоВерх_2();
}else if (NumberOnTheSide.Value == 'Три'){
ВидимаЛіваАбоВерх_3();
}
}

/////// Видима права, або дно
function ВидимаПраваАбоДно_1(){
BlockVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1)
BlockInVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1)
}

function ВидимаПраваАбоДно_2(){
ВидимаПраваАбоДно_1();
BlockVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2)
BlockInVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2)
}

function ВВидимаПраваАбоДно_3(){
ВидимаПраваАбоДно_1();
ВидимаПраваАбоДно_2();
BlockVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep3)
BlockInVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep3)
}

if (FurnVis.Value == 'Видима права, або дно'){
if (NumberOnTheSide.Value == 'Одне'){
ВидимаПраваАбоДно_1();
}else if (NumberOnTheSide.Value == 'Два'){
ВидимаПраваАбоДно_2();
}else if (NumberOnTheSide.Value == 'Три'){
ВидимаПраваАбоДно_3();
}
}

/////// Обидві не видимі
function ОбидвіНеВидимі_1(){
BlockVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1)
BlockVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1)
}

function ОбидвіНеВидимі_2(){
ОбидвіНеВидимі_1();
BlockVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2)
BlockVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2)
}

function ОбидвіНеВидимі_3(){
ОбидвіНеВидимі_1();
ОбидвіНеВидимі_2();
BlockVisible.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep3)
BlockVisible.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep3)
}

if (FurnVis.Value == 'Обидві не видимі'){
if (NumberOnTheSide.Value == 'Одне'){
ОбидвіНеВидимі_1();
}else if (NumberOnTheSide.Value == 'Два'){
ОбидвіНеВидимі_2();
}else if (NumberOnTheSide.Value == 'Три'){
ОбидвіНеВидимі_3();
}
}

/////// Встановлення шкантів
if (ShcantWith.Value == 'Ліворуч або верх')
{
if (TypeBasing.Value == 'Від переднього торця')
{
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2 + StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1 - StepFastener.Value)
}
else
{
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2 - StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1 + StepFastener.Value)
}
}

if (ShcantWith.Value == 'Праворуч або дно')
{
if (TypeBasing.Value == 'Від переднього торця')
{
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2 + StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1 - StepFastener.Value)
}
else
{
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2 - StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1 + StepFastener.Value)
}
}

if (ShcantWith.Value == 'З обох боків')
{
if (TypeBasing.Value == 'Від переднього торця')
{
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2 + StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2 + StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1 - StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1 - StepFastener.Value)
}
else
{
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep2 - StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep2 - StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok1, CoordinateA, CoordinateC, ZKrep1 + StepFastener.Value)
ShkantType.Value.Mount(Polka, Bok2, CoordinateB, CoordinateD, ZKrep1 + StepFastener.Value)
}
}


}
Action.Commit();
[свернуть]

Выбираешь например ставить на горизонтальную, но потом что бы устанавливать на вертикальную, нужно закрывать скрипт и открывать заново. Неудобненько.
danzum вне форума   Ответить с цитированием Вверх
Старый 01.08.2020, 14:17   #1292
rmk
Новичок
 
Регистрация: 29.06.2018
Сообщений: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rmk пока не определено
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Есть вариант, но он не бесплатный.(
Для подъемных механизмов какого-то конкретного производителя? или с возможностью выбора производителя?
rmk вне форума   Ответить с цитированием Вверх
Старый 21.08.2020, 17:36   #1293
ANTORIX
Местный
 
Регистрация: 26.09.2010
Сообщений: 168
Сказал(а) спасибо: 178
Поблагодарили 518 раз(а) в 154 сообщениях
Вес репутации: 243
ANTORIX - луч света в тёмном царствеANTORIX - луч света в тёмном царствеANTORIX - луч света в тёмном царствеANTORIX - луч света в тёмном царствеANTORIX - луч света в тёмном царствеANTORIX - луч света в тёмном царстве
По умолчанию

Есть несколько коллекций свойств для разных элементов мебели, скажем, кухонные модули различных назначений. Некоторые свойства общие для всех коллекций - габарит ширины, высоты, глубины и пр. Другие свойства уникальные для каждого из них. Задача стоит такая: при выборе определенного типа модуля должны отображаться соответствующие ему уникальные параметры для настройки в окне свойств программы. Существует метод Visible, решающий эту задачу. Но его возможно применить только к одному конкретному объекту в коде скрипта.

Есть ли возможность скрывать свойства, так сказать, оптом, заключив, например, их в блок, или функцию? Можно, конечно это реализовать посредством заключения их в группу и тогда все, что принадлежит ей тоже скрывается. Но, это требует для каждого объекта группы указать в коде принадлежность к ней, а это большая рутинная работа, учитывая, количество модулей - около 20 штук.
ANTORIX вне форума   Ответить с цитированием Вверх
Старый 30.08.2020, 01:11   #1294
sergio1982
Пользователь
 
Регистрация: 01.09.2019
Сообщений: 99
Сказал(а) спасибо: 20
Поблагодарили 28 раз(а) в 14 сообщениях
Вес репутации: 30
sergio1982 на пути к лучшему
По умолчанию

Исходя из справки не могу понять, как перебрать все паралельные линии и 2D элементы?

Так они участвуют в переборе, но имена ни о чём не говорят чтобы я мог их отсеять.
Код:
Model.forEach(function(obj) {
    alert(obj.Name);
});
sergio1982 на форуме   Ответить с цитированием Вверх
Старый 30.08.2020, 01:44   #1295
sergio1982
Пользователь
 
Регистрация: 01.09.2019
Сообщений: 99
Сказал(а) спасибо: 20
Поблагодарили 28 раз(а) в 14 сообщениях
Вес репутации: 30
sergio1982 на пути к лучшему
По умолчанию

Код:
alert(obj);
Цитата:
[object TLine3D]
[object TAuxLine3D]
Это выводит то что надо, но как это использовать в JS.

UPD.
Разобрался вроде, нужно toString().
sergio1982 на форуме   Ответить с цитированием Вверх
Старый 07.09.2020, 00:41   #1296
sanyava
Новичок
 
Регистрация: 16.05.2019
Сообщений: 7
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
sanyava пока не определено
По умолчанию Имя детали

Есть ли какая возможность редактировать/удалять/заменять часть имени нескольких разных деталей, у которых есть повторяющееся слово в имени, как в Ворде командой найти и заменить ?
sanyava вне форума   Ответить с цитированием Вверх
Старый 07.09.2020, 01:43   #1297
sergio1982
Пользователь
 
Регистрация: 01.09.2019
Сообщений: 99
Сказал(а) спасибо: 20
Поблагодарили 28 раз(а) в 14 сообщениях
Вес репутации: 30
sergio1982 на пути к лучшему
По умолчанию

Не смог найти как создать линию - отрезок между двух точек, не та которая строится на панели, а которую можно отрисовать в любом месте из меню Строить - Отрезок.
Думал что это AddLine, но видимо то что мне нужно не относится к объекту контура.

Код:
P1 = GetPoint('Укажите первую точку');
P2 = GetPoint('Укажите вторую точку');
AddLine
sergio1982 на форуме   Ответить с цитированием Вверх
Старый 07.09.2020, 08:38   #1298
Максим Геннадьевич
Пользователь
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 98
Сказал(а) спасибо: 35
Поблагодарили 83 раз(а) в 23 сообщениях
Вес репутации: 57
Максим Геннадьевич скоро придёт к известности
По умолчанию

Цитата:
Сообщение от sanyava Посмотреть сообщение
Есть ли какая возможность редактировать/удалять/заменять часть имени нескольких разных деталей, у которых есть повторяющееся слово в имени, как в Ворде командой найти и заменить ?
Примерный ответ на ваш вопрос http://promebelclub.ru/forum/showpos...0&postcount=52
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 07.09.2020, 18:01   #1299
sanyava
Новичок
 
Регистрация: 16.05.2019
Сообщений: 7
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
sanyava пока не определено
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Примерный ответ на ваш вопрос http://promebelclub.ru/forum/showpos...0&postcount=52
Добавлять добавляет, но изменить/удалить значение то нет функции, я уже смотрел этот скрипт до этого. По форуму больше вроде не нашел информации по моему вопросу. Я имею в виду допустим добавилось значение наименования блока в имя панели, а потом по каким-то причинам название блока поменялось. И как тогда убрать старое название блока и добавить новое ?
sanyava вне форума   Ответить с цитированием Вверх
Старый 07.09.2020, 18:29   #1300
Максим Геннадьевич
Пользователь
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 98
Сказал(а) спасибо: 35
Поблагодарили 83 раз(а) в 23 сообщениях
Вес репутации: 57
Максим Геннадьевич скоро придёт к известности
По умолчанию

Цитата:
Сообщение от sanyava Посмотреть сообщение
Добавлять добавляет, но изменить/удалить значение то нет функции, я уже смотрел этот скрипт до этого. По форуму больше вроде не нашел информации по моему вопросу. Я имею в виду допустим добавилось значение наименования блока в имя панели, а потом по каким-то причинам название блока поменялось. И как тогда убрать старое название блока и добавить новое ?
Можно найти, что нужно изменить и через функцию replace заменить на нужное и пустое значение (типа удалить).
У меня есть скрипт меняет цифровое значение у выделенных панелей или если оставить 0 то число убирается.

Скрытый текст


PHP код:
'use strict';
var 
prop Action.Properties;
var 
numm prop.NewNumber('Номер');
var 
botm prop.NewButton('Заменить').OnClick = function(){
    
ObjReplace();
    
Action.Finish();
}

function 
ObjReplace() {
    
Model.forEach(function (obj) {
        if (
obj.Selected == true) {
            
Undo.Changing(obj);
            var 
pan obj.AsPanel;
            if (
pan) {
                var 
nulIe parseInt(obj.Name.match(/d+/));
                if (
isNaN(nulIe)) {
                    
obj.Name obj.Name numm.Value;
                } else {
                    
obj.Name obj.Name.replace(obj.Nameobj.Name.replace(nulIe, (numm.Value == '' numm.Value)));
                }
            } else {
                for (var 
obj.Count 1>= 0i--) {
                    var 
mod obj.Objects[i].AsPanel;
                    if (
mod) {
                        var 
nulIe parseInt(obj.Objects[i].Name.match(/d+/));
                        if (
isNaN(nulIe)) {
                            
obj.Objects[i].Name obj.Objects[i].Name ' ' numm.Value;
                        } else {
                            
obj.Objects[i].Name obj.Objects[i].Name.replace(obj.Objects[i].Nameobj.Objects[i].Name.replace(nulIe, (numm.Value == '' numm.Value)));
                        }
                    }
                }
            }
        }
    });
}

Action.Continue(); 
[свернуть]
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 9 nayrogi Базис-мебельщик 9 770 22.11.2020 19:55
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1430 01.10.2020 19:32
БАЗИС-ЧПУ 8 chingisnah Базис-мебельщик 8 119 21.12.2017 22:04
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36
Базис-7,"Народный Базис"и Windows-8 sergeyzak18 "НАРОДНЫЙ" базис 23 15.01.2014 23:37


Текущее время: 08:53. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
© 2007-2020 PROMEBEL