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

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

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 13.01.2014, 13:22  
БАЗИС 9 - Скрипты
 
Аватар для Igor_482
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174

Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
Версия для печати Отправить по электронной почте
Igor_482 Igor_482 вне форума 13.01.2014, 13:22
Рейтинг: ()

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

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

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


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

__________________________________________________ _______________

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

Для работы скриптов от Igor_482 необходим установленный ODBC драйвер FireBird, установленные и зарегистрированные в ОС модули FBDBDialog.dll, MSDATGRD.OCX, MSCOMCTL.OCX и MSSTDFMT.DLL (сообщение с описанием установки этих модулей в ОС, ссылка на модули и исходник "FBDBDialog.dll") а так же файл "ADODB.ini" с настройками соединения к БД в папке со скриптом.

ADODB.ini


[General]
FDBServ = t001
FBSPort = 14357
FDBFile = D:\DBBM\Библиотека\БД\BMDB09.FDB
FBCFile = C:\Windows\System32\fbclient.dll
----------------------------------------------
Переменные .ini:
FDBServ - имя ПК на котором находится сервер FireBird с используемой БД (если локально, то параметр: localhost или 127.0.0.1);
FBSPort - в настройке не нуждается (по умолчанию: 14357);
FDBFile - локальный путь к БД на сервере FireBird;
FBCFile - путь к файлу "fbclient.dll" (находится в корневой папке программы Базис).
[свернуть]

Последний раз редактировалось systland; 23.09.2016 в 11:52..
Просмотров: 993878
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
evilbaby1989 (10.07.2023)
Старый 26.05.2016, 20:29   #1091
тех.нолог
Местный
 
Аватар для тех.нолог
 
Регистрация: 03.01.2016
Адрес: Украина. Харьков
Сообщений: 481
Сказал(а) спасибо: 316
Поблагодарили 507 раз(а) в 200 сообщениях
Вес репутации: 250
тех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от v22884 Посмотреть сообщение
ставит разную фурнитуру в разные ряды
Спасибо за труд, интересное добавление функционала, но хотелось немного другого...
Первый скрипт отлично ставит ножки и до сих пор, а на счет клипс я имел ввиду добавить выбор дополнительной фурнитуры на первый ряд, а не увеличить фурнитуру для замены. При таком раскладе мне на первый ряд либо ножки сиавить либо клипсы (без ножек)
__________________
...Ковырятель Базиса...
... версия БМ 9.0.8.18908 ...

2 канал YouTube по Базису
тех.нолог вне форума   Ответить с цитированием Вверх
Старый 26.05.2016, 21:03   #1092
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от тех.нолог Посмотреть сообщение
При таком раскладе мне на первый ряд либо ножки сиавить либо клипсы
Ну можно проще - создать составную фурнитуру "Опора кухонная с клипсой". На второй ряд ставите Опора кухонная, а на первый - Опора кухонная с клипсой или любую другую опору..
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
v22884 (29.05.2016)
Старый 27.05.2016, 05:36   #1093
тех.нолог
Местный
 
Аватар для тех.нолог
 
Регистрация: 03.01.2016
Адрес: Украина. Харьков
Сообщений: 481
Сказал(а) спасибо: 316
Поблагодарили 507 раз(а) в 200 сообщениях
Вес репутации: 250
тех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстве
По умолчанию

Uncle, спасибо, я это и так прекрасно понимаю, хотелось просто чистый скрипт... Все равно спасибо за труды, буду ставить отдельно клипсу как и ранее... не надорвусь
__________________
...Ковырятель Базиса...
... версия БМ 9.0.8.18908 ...

2 канал YouTube по Базису
тех.нолог вне форума   Ответить с цитированием Вверх
Старый 27.05.2016, 10:59   #1094
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от тех.нолог Посмотреть сообщение
хотелось просто чистый скрипт... Все равно спасибо за труды, буду ставить отдельно клипсу как и ранее... не надорвусь
Не, просто когда у меня был выбор как лучше организовать установку клипс, я предпочел сделать опору с клипсой в сборе. Мне показалось что ставить отдельно клипсы более заморочно чем сразу готовую опору в сборе..
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Старый 27.05.2016, 11:44   #1095
тех.нолог
Местный
 
Аватар для тех.нолог
 
Регистрация: 03.01.2016
Адрес: Украина. Харьков
Сообщений: 481
Сказал(а) спасибо: 316
Поблагодарили 507 раз(а) в 200 сообщениях
Вес репутации: 250
тех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстветех.нолог - луч света в тёмном царстве
По умолчанию

Возможно и так, только вся моя работа основана на подготовке модулей для Салона, а составная ножка там не прокатит... при замене на другую ножку клипса "слетит". Вся заменяемая фурнитура должна быть отдельно.
__________________
...Ковырятель Базиса...
... версия БМ 9.0.8.18908 ...

2 канал YouTube по Базису
тех.нолог вне форума   Ответить с цитированием Вверх
Старый 27.05.2016, 14:02   #1096
Igor_482
VIP
 
Аватар для Igor_482
 
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
Вес репутации: 367
Igor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личность
По умолчанию Назначить материал панели без заведения его в БД.

Скрипт позволяет редактировать наименования материалов и его параметры на выделенных или на всех панелях (на кромках панелей), профилей активной модели. Скрипт применим при построении деталей мебели состоящих из нескольких панелей (различной формы и размеров) требующих обработки после их сборки (склейки). В таком случае скрипт используется для разделения заготовок таких деталей и готовых деталей по материалу без необходимости заведения нового ("несуществующего") материала детали в БД.
Нажмите на изображение для увеличения
Название: Скрипт.jpg
Просмотров: 119
Размер:	39.4 Кб
ID:	111269
Для работы скрипта необходим установленный ODBC драйвер FireBird и файл "ADODB.ini" с настройками соединения к БД в папке со скриптом.

ADODB.ini


[General]
FDBServ = t001
FBSPort = 14357
FDBFile = D:\DBBM\Библиотека\БД\BMDB09.FDB
FBCFile = C:\Windows\System32\fbclient.dll
[свернуть]

Скрипт


Код HTML:
var Controls  = Action.Properties;
var Items     = new Array();
var Selection = new Array();
var RepMat    = /(\s*) \(Артикул ([^(Артикул )]*)\)/;
var Objects   = {
  Panels: new Object(),
  Butts:  {
    Items:  new Object(),
    Owners: new Object()
  }
};
var MainForm       = NewForm();
MainForm.Width     = 400;
MainForm.Height    = 41;
MainForm.Caption   = 'Редактировать наименование';
MainForm.Resizable = false;
MainForm.Dockable  = false;

function ReadIniFile(FileName) {
  var Data = system.readTextFile(FileName);
  var Regex = {
        Section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,
        Param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,
        Comment: /^\s*;.*$/
      };
  var Value = {};
  var Lines = Data.split(/\r\n|\r|\n/);
  var Section = null;
  Lines.forEach(function(Line) {
    if (Regex.Comment.test(Line)) {
      return;
    } else if (Regex.Param.test(Line)) {
      var Match = Line.match(Regex.Param);
      if (Section) {
        Value[Section][Match[1]] = Match[2];
      } else {
        Value[Match[1]] = Match[2];
      };
    } else if (Regex.Section.test(Line)) {
      var Match = Line.match(Regex.Section);
      Value[Match[1]] = {};
      Section = Match[1];
    } else if (Line.length == 0 && Section) {
      Section = null;
    };
  });
  return Value;
};

if (!system.fileExists('ADODB.ini')) {
  alert('Не найден файл (ADODB.ini) с настройками для подключения к БД!');
  Action.Cancel();
} else {
  var IniFile = ReadIniFile('ADODB.ini');
  if (!system.fileExists(IniFile['General']['FBCFile'])) {
    alert('Настройки подключения к БД указанные в файле (ADODB.ini)' +
          ' не являются верными!');
    Action.Cancel();
  };
};

var ConnectionString = 'Driver={Firebird/InterBase(r) driver};' +
                       'Dbname=' + IniFile['General']['FDBServ'] + '/'
                                 + IniFile['General']['FBSPort'] + ':'
                                 + IniFile['General']['FDBFile'] + ';' +
                       'CHARSET=NONE;' +
                       'PWD=masterkey;' +
                       'UID=SYSDBA;' +
                       'Client=' + IniFile['General']['FBCFile'];
var Query = "Select\n" +
            " IIf(MATERIAL_ADVANCE.LABEL_EDGE Is Null, '', MATERIAL_ADVANCE.LABEL_EDGE) As LABEL_EDGE,\n" +
            " MATERIAL.NAME_MAT\n" +
            "From\n" +
            "  MATERIAL_ADVANCE Inner Join\n" +
            "  MATERIAL On MATERIAL.ID_M = MATERIAL_ADVANCE.ID_M";
var Connection = NewCOMObject('ADODB.Connection');
var Recordset  = NewCOMObject('ADODB.Recordset');

try {
  Connection.Open(ConnectionString);
  Recordset.ActiveConnection = Connection;
  Recordset.Open(Query);
} catch(Error) {
  Recordset.Close;
  Connection.Close;
  alert(decodeURIComponent(escape(Error.message)));
  Action.Cancel();
};

function SetSelection(List) {
  Model.UnSelectAll();
  for (var i = 0; i < List.length; i++) {
    List[i].Selected = true;
  };
};

function EqualsMaterial(A, B) {
  if (A.MaterialName  == B.MaterialName &&
      A.MaterialWidth == B.MaterialWidth &&
      A.Thickness     == B.Thickness) {
    return true;
  };
  return false;
};

function EqualsButts(A, B) {
  if (A.Material  == B.Material &&
      A.Width     == B.Width &&
      A.Thickness == B.Thickness &&
      A.Sign      == B.Sign) {
    return true;
  };
  return false;
};

function ListToArray(List) {
  var Result = new Array();
  for (var i = 0; i < List.Count; i++) {
    if (List[i].List === true) {
      Result = Result.concat(ListToArray(List[i]));
    } else {
      Result.push(List[i]);
    };
  };
  return Result;
};

function SetMaterials(Control) {
  system.log('SetMaterials');
  Panels = Objects.Panels[Control.Name];
  for (var i = 0; i < Panels.length; i++) {
    StartEditing(Panels[i]);
    Panels[i].MaterialName  = Control.Value;
    if (!(Panels[i] instanceof T2DTrajectoryBody)) {
      Panels[i].Thickness   = Control[1].Value;
    } else {
      system.log('T2DTrajectoryBody');
    };
    Panels[i].MaterialWidth = Control[2].Value;
    Panels[i].Build();
  };
};

function SetButts(Control) {
  system.log('SetButts');
  Butts =  Objects.Butts.Items[Control.Name];
  Owners = Objects.Butts.Owners[Control.Name];
  for (var i = 0; i < Owners.length; i++) {
    StartEditing(Owners[i]);
  };
  for (var i = 0; i < Butts.length; i++) {
    Butts[i].Material  = Control.Value;
    Butts[i].Thickness = Control[1].Value;
    Butts[i].Width     = Control[2].Value;
    Butts[i].Sign      = Control[3].Value;
  };
  for (var i = 0; i < Owners.length; i++) {
    Owners[i].Build();
  };
};

function EditMaterialName(Control) {
  MainForm.String = MainForm.Properties.NewString('', Control.Value);
  MainForm.String.SetLayout(0, 0, MainForm.Width, 22);
  MainForm.String.OnValueChange = function() {
    Control.Value = MainForm.String.Value;
  };
  MainForm.OnClose = function() {
    MainForm.Properties.Clear();
  };
  MainForm.Show(WindowPosition.Default);
};

function GetSign(Control) {
  system.log('GetSign');
  var Result = new String();
  Recordset.Filter = "(NAME_MAT = '" + Control.Value.split(/\r/)[0] + "')";
  while (Recordset.EOF == 0) {
    Result = Recordset.Fields.Item('LABEL_EDGE').Value;
    Recordset.MoveNext();
  };
  return Result;
};

Action.OnFinish = function() {
  system.log('OnFinish');
  SetSelection(Selection);
  try {
    Recordset.Close;
    Connection.Close;
  } catch(Error) {
    alert(decodeURIComponent(escape(Error.message)));
  };
};

if (Model.Selected) {
  for (var i = 0; i < Model.SelectionCount; i++) {
    Selection.push(Model.Selections[i]);
    if (Model.Selections[i].List === true) {
      Items = Items.concat(ListToArray(Model.Selections[i]));
    } else {
      Items.push(Model.Selections[i]);
    };
  };
} else {
  if (confirm('Редактировать все панели модели?')) {
    Items = ListToArray(Model);
  } else {
    Action.Cancel();
  };
};

for (var i = 0; i < Items.length; i++) {
  var j   = new Number();
  var Key = new String();
  switch (true) {
    case (Items[i] instanceof TFurnPanel):
    case (Items[i] instanceof TExtrusionBody):
    case (Items[i] instanceof T2DTrajectoryBody):
      if (Items[i].MaterialName) {
        j   = 0;
        Key = Items[i].MaterialName.split(/\r/)[0] + '#' + j;
        while (Objects.Panels[Key] != undefined &&
               !EqualsMaterial(Items[i], Objects.Panels[Key][0])) {
          j++;
          Key = Items[i].MaterialName.split(/\r/)[0] + '#' + j;
        };
        if (Objects.Panels[Key] == undefined) {
          Objects.Panels[Key] = new Array();
        };
        Objects.Panels[Key].push(Items[i]);
      };
      if (Items[i].Butts) {
        for (var k = 0; k < Items[i].Butts.Count; k++) {
          j   = 0;
          Key = Items[i].Butts[k].Material.split(/\r/)[0] + '#' + j;
          while (Objects.Butts.Items[Key]  != undefined &&
                 Objects.Butts.Owners[Key] != undefined &&
                 !EqualsButts(Items[i].Butts[k], Objects.Butts.Items[Key][0])) {
            j++;
            Key = Items[i].Butts[k].Material.split(/\r/)[0] + '#' + j;
          };
          if (Objects.Butts.Items[Key]  == undefined &&
              Objects.Butts.Owners[Key] == undefined) {
            Objects.Butts.Items[Key]  = new Array();
            Objects.Butts.Owners[Key] = new Array();
          };
          Objects.Butts.Items[Key].push(Items[i].Butts[k]);
          Objects.Butts.Owners[Key].push(Items[i]);
        };
      };
      break;
  };
};

var i = new Number();
for (var Key in Objects.Panels) {
  Controls.NewSelector(Key, Objects.Panels[Key][0].MaterialName).CanClear = false;
  Controls[i].Expanded = false;
  Controls[i].NewMaterial('Материал:').Visible = false;
  Controls[i].NewNumber('Толщина:', Objects.Panels[Key][0].Thickness);
  Controls[i].NewNumber('Ширина:', Objects.Panels[Key][0].MaterialWidth);
  Controls[i].PopupMenu.NewButton('Править: наименование');
  eval(
    'Controls[' + i + '].OnClick = function() {                              \n' +
    '  Controls[' + i + '][0].Click();                                       \n' +
    '};                                                                      \n' +
    'Controls[' + i + '].PopupMenu[0].OnClick = function() {                 \n' +
    '  EditMaterialName(Controls[' + i + ']);                                \n' +
    '};                                                                      \n' +
    'Controls[' + i + '][0].OnValueChange = function() {                     \n' +
    '  Controls[' + i + '].Value    = Controls[' + i + '][0].ValueToString().\n' +
    '    replace(RepMat, "$1\\r$2");                                         \n' +
    '  Controls[' + i + '][1].Value = Controls[' + i + '][0].Thickness;      \n' +
    '  Controls[' + i + '][2].Value = Controls[' + i + '][0].Width;          \n' +
    '};                                                                      \n' +
    'Controls[' + i + '].OnChange = function() {                             \n' +
    '  SetMaterials(Controls[' + i + ']);                                    \n' +
    '};                                                                      \n' +
    'Controls[' + i + '].OnActivate = function() {                           \n' +
    '  SetSelection(Objects.Panels[Controls[' + i + '].Name]);               \n' +
    '};                                                                      \n' +
    'Controls[' + i + '][1].OnActivate = function() {                        \n' +
    '  SetSelection(Objects.Panels[Controls[' + i + '].Name]);               \n' +
    '};                                                                      \n' +
    'Controls[' + i + '][2].OnActivate = function() {                        \n' +
    '  SetSelection(Objects.Panels[Controls[' + i + '].Name]);               \n' +
    '};                                                                        '
  );
  i++;
};

for (var Key in Objects.Butts.Items) {
  Controls.NewSelector(Key, Objects.Butts.Items[Key][0].Material).CanClear = false;
  Controls[i].Expanded = false;
  Controls[i].NewButt('Кромка:').Visible = false;
  Controls[i].NewNumber('Толщина:', Objects.Butts.Items[Key][0].Thickness);
  Controls[i].NewNumber('Ширина:', Objects.Butts.Items[Key][0].Width);
  Controls[i].NewString('Обозначение:', Objects.Butts.Items[Key][0].Sign);
  Controls[i].PopupMenu.NewButton('Править: наименование');
  eval(
    'Controls[' + i + '].OnClick = function() {                              \n' +
    '  Controls[' + i + '][0].Click();                                       \n' +
    '};                                                                      \n' +
    'Controls[' + i + '].PopupMenu[0].OnClick = function() {                 \n' +
    '  EditMaterialName(Controls[' + i + ']);                                \n' +
    '};                                                                      \n' +
    'Controls[' + i + '][0].OnValueChange = function() {                     \n' +
    '  Controls[' + i + '].Value    = Controls[' + i + '][0].ValueToString().\n' +
    '    replace(RepMat, "$1\\r$2");                                         \n' +
    '  Controls[' + i + '][1].Value = Controls[' + i + '][0].Thickness;      \n' +
    '  Controls[' + i + '][2].Value = Controls[' + i + '][0].Width;          \n' +
    '  Controls[' + i + '][3].Value = GetSign(Controls[' + i + ']);          \n' +
    '};                                                                      \n' +
    'Controls[' + i + '].OnChange = function() {                             \n' +
    '  SetButts(Controls[' + i + ']);                                        \n' +
    '};                                                                      \n' +
    'Controls[' + i + '].OnActivate = function() {                           \n' +
    '  SetSelection(Objects.Butts.Owners[Controls[' + i + '].Name]);         \n' +
    '};                                                                      \n' +
    'Controls[' + i + '][1].OnActivate = function() {                        \n' +
    '  SetSelection(Objects.Butts.Owners[Controls[' + i + '].Name]);         \n' +
    '};                                                                      \n' +
    'Controls[' + i + '][2].OnActivate = function() {                        \n' +
    '  SetSelection(Objects.Butts.Owners[Controls[' + i + '].Name]);         \n' +
    '};                                                                      \n' +
    'Controls[' + i + '][3].OnActivate = function() {                        \n' +
    '  SetSelection(Objects.Butts.Owners[Controls[' + i + '].Name]);         \n' +
    '};                                                                        '
  );
  i++;
};

Controls.NewButton('Завершить').OnClick = function() {
  Action.Commit();
  Action.Finish();
};

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

Последний раз редактировалось Igor_482; 28.05.2016 в 00:15.
Igor_482 вне форума   Ответить с цитированием Вверх
9 пользователя(ей) сказали cпасибо:
Старый 30.05.2016, 16:30   #1097
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,884
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 246
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Подскажите, пож-та, как выделить скриптом панели с пазом, с пластиком? Можно ли только на выделенных панелях расставить позиции скриптом?
andronf вне форума   Ответить с цитированием Вверх
Старый 30.05.2016, 17:33   #1098
Igor_482
VIP
 
Аватар для Igor_482
 
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
Вес репутации: 367
Igor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личность
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
Подскажите, пож-та, как выделить скриптом панели с пазом, с пластиком?

решение:


PHP код:
Model.forEachPanel(function(Panel) {
  if (
Panel.Plastics.Count) {
    
Panel.Selected true;
  };
  if (
Panel.Cuts.Count) {
    
Panel.Selected true;
  };
}); 
[свернуть]


Цитата:
Сообщение от andronf Посмотреть сообщение
Можно ли только на выделенных панелях расставить позиции скриптом?
расстановка позиций возможна на все объекты модели без исключений.
Igor_482 вне форума   Ответить с цитированием Вверх
8 пользователя(ей) сказали cпасибо:
Старый 31.05.2016, 08:30   #1099
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Igor_482 Посмотреть сообщение
расстановка позиций возможна на все объекты модели без исключений.
я бы попробовал скопировать в буфер не выд., удалить не выд., расставить поз. на выд., вставить из буфера.

а если с точки зрения задачи допустимо, вообще поставить позиции вручную: Panel.ArtPos = '1'. Если надо, сравнивать панели самостоятельно.
v22884 вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
andronf (31.05.2016), Briz (31.05.2016), Igor_482 (01.06.2016), тех.нолог (31.05.2016)
Старый 31.05.2016, 11:30   #1100
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,884
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 246
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Была идея не выделенное объединить в сборку, расставить позиции, потом разрушить сборку.
andronf вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
v22884 (01.06.2016)
Ответ

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1525 30.03.2024 15:03
БАЗИС 9 nayrogi Базис-мебельщик 9 785 01.10.2022 23:13
БАЗИС-ЧПУ 8 chingisnah Базис-мебельщик 8 119 21.12.2017 22:04
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36
Базис-7,"Народный Базис"и Windows-8 sergeyzak18 "НАРОДНЫЙ" базис 23 16.01.2014 00:37


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


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL

џндекс.Њетрика