Форум профессиональных мебельщиков 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..
Просмотров: 993206
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
evilbaby1989 (10.07.2023)
Старый 18.07.2016, 10:47   #1191
maxgmv
VIP
 
Аватар для maxgmv
 
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
maxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Saha SG-552 Посмотреть сообщение
Если в модели только один блок, то сборка с ним создается нормально.
Если же больше, то вылетает ошибка и один из блоков пропадает.
Намекните, что делаю не так?
Сначала все блоки нужно записать в массив, а потом с ними работать.
PHP код:
StartEditing(Model);
BlockArray = [];

Model.forEach(function(obj) {
    if (
obj instanceof TFurnBlock) {
        
BlockArray.push(obj);
    };
});

for (
0BlockArray.lengthi++) {
    
Sborka AddAssembly(BlockArray[i].Name);
    
Sborka.Owner BlockArray[i].Owner//закоментарить, если не нужна вложенность
    
BlockArray[i].Owner Sborka;
};
Model.FullBuild
Да и еще, блоком является составная фурнитура. Проверял на модели с блоками, без составной фурнитуры.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
maxgmv вне форума   Ответить с цитированием Вверх
5 пользователя(ей) сказали cпасибо:
andronf (18.07.2016), Briz (19.07.2016), PravCom (01.02.2022), Saha SG-552 (18.07.2016), тех.нолог (18.07.2016)
Старый 19.07.2016, 12:31   #1192
Saha SG-552
Пользователь
 
Аватар для Saha SG-552
 
Регистрация: 16.03.2016
Сообщений: 31
Сказал(а) спасибо: 52
Поблагодарили 26 раз(а) в 6 сообщениях
Вес репутации: 107
Saha SG-552 на пути к лучшему
По умолчанию

Работает очень странно...
Создает сборки выборочно, не на все блоки. Заметил, что на блоки, созданные с помощью скриптов ранее, не создает сборки. Есть еще одна проблема: сборки, созданные этим скриптом, невозможно разрушить стандартными средствами. Команда "разрушить сборки по имени" не видит эти сборки, как сборки. Беда, в общем.
Saha SG-552 вне форума   Ответить с цитированием Вверх
Старый 19.07.2016, 14:15   #1193
Briz
Местный
 
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
Briz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личность
По умолчанию

Попробуйте закомментировать строчку Sborka.Owner = BlockArray[i].Owner;
Briz вне форума   Ответить с цитированием Вверх
Старый 19.07.2016, 18:28   #1194
Saha SG-552
Пользователь
 
Аватар для Saha SG-552
 
Регистрация: 16.03.2016
Сообщений: 31
Сказал(а) спасибо: 52
Поблагодарили 26 раз(а) в 6 сообщениях
Вес репутации: 107
Saha SG-552 на пути к лучшему
По умолчанию

Цитата:
Сообщение от Briz Посмотреть сообщение
Попробуйте закомментировать строчку Sborka.Owner = BlockArray[i].Owner;
К сожалению, все то же самое =(
Saha SG-552 вне форума   Ответить с цитированием Вверх
Старый 20.07.2016, 09:31   #1195
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Экспорт в three.js

добавлено:
-подрезки профилей
-зеркало(для материалов с зеркальностью>50% ). но тут уже начинаются компромисы с fps, особенно на медленных браузерах и слабых машинах.
-вычитание(пока только для одного уровня)

фасады - пока нет.
Вложения
Тип файла: rar Сайт.rar (13.0 Кб, 22 просмотров)
v22884 вне форума   Ответить с цитированием Вверх
Старый 22.07.2016, 04:06   #1196
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Экспорт в three.js Гнутой панели.

Подскажите рабочие варианты.

Вот мои предварительные:
1) ExtrudeGeometry : контур – сечение, линия — высота. Нет возможности редактировать контур, то есть всегда прямоугольный (если только не изголяться с вычитаниями).
2) Разделить вертикально контур панели, и этими кусками выставлять вдоль траектории. Отображение должно быть не плохим, но в перспективе не будет возможности редактировать в three.js как единую гнутую панель. Размер файла будет чуть больше чем хотелось бы.
3) Найти приемлемый модификатор.
Пробовал этот 1. Не гнёт как надо.
Пробовал этот 2. Тож не совсем то.

4) Написать приемлемый модификатор.
5) Писать треугольники. Минусы: большой файл на выходе, не будет возможности редактировать в three.js.
6) Пытать разработчиков three.js до появления решения.
v22884 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
тех.нолог (22.07.2016)
Старый 22.07.2016, 09:41   #1197
Briz
Местный
 
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
Briz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личность
По умолчанию

1)Я бы выбрал писать треугольники если нет необходимости редактировать в three.js. С величиной файла можно побороться путем группировки одинаковых точек и округлением координат до 1-2 знаков после запятой.

2)В Базисе до без ядра C3D используется следующий алгоритм модификатора:

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

PHP код:
procedure TFurnPanel.BentVNTransform(var PNTVector);
const
  
cEps 1e-8;
  
cEps2 1e-4;
var
  
kIndexInteger;
  
PrevXNextXdxDouble;
  
ArcT2DArc;
  
AngleDAngleDouble;
  
SinACosANxPosZDouble;
  
Pos2T2DPoint;
  
LineT2DLine;
begin
  PrevX 
:= 0;
  
Index := -1;
  
IsContourRectangle;
  
P.:= P.FRectPos.x;
  for 
:= 0 to FBentContour.Count do
  
begin
    NextX 
:= PrevX FBentContour[k].ObjLength;
    if (
p.PrevX cEps) and (p.NextX cEps2then
    begin
      Index 
:= k;
      break;
    
end;
    
PrevX := NextX;
  
end;
  if 
Index 0 then
  begin
    
if P.0 then
    begin
      Index 
:= 0;
      
PrevX := 0;
    
end
    
else
    
begin
      Index 
:= FBentContour.Count 1;
      
PrevX := PrevX FBentContour[Index].ObjLength;
    
end;
  
end;
  if 
Index > -1 then
  begin
    dx 
:= p.PrevX;
    case 
FBentContour[Index].ElType of
      etArc
:
        
begin
          Arc 
:= FBentContour[Index].AsArc;
          
DAngle := dx Arc.ArcRadius;
          if 
Arc.ArcDir then
          begin
            Angle 
:= Arc.Pos1Angle DAngle;
            
PosZ :=  Arc.ArcRadius p.z;
          
end
          
else
          
begin
            Angle 
:= Arc.Pos1Angle DAngle;
            
PosZ :=  Arc.ArcRadius p.z;;
          
end;

          
// position
          
Pos2 := P2DOffset(Arc.CenterPosZAngle);
          
p.:= Pos2.x;
          
p.:= Pos2.y;
          
//rotating normal
          
SinCos(Angle Pi/2SinACosA);
          if 
not Arc.ArcDir then
          begin
            SinA 
:= -SinA;
            
CosA := -CosA;
          
end;
          
Nx := N.x;
          
N.x:= CosA Nx SinA N.z;
          
N.z:= CosA N.SinA Nx;
        
end;
      
etLine:
        
begin
          Line 
:= FBentContour[Index].AsLine;
          
Angle := Line.LineAngle Pi/2;
          
// position
          
Pos2 := Line.Pos1 Line.LineDir * (dx Line.ObjLength);
          
Pos2 := P2DOffset(Pos2P.zAngle);
          
p.:= Pos2.x;
          
p.:= Pos2.y;
          
//rotating normal
          
SinCos(Angle Pi/2SinACosA);
          
Nx := N.x;
          
N.x:= CosA Nx SinA N.z;
          
N.z:= CosA N.SinA Nx;
        
end;
    
end;
  
end;
end
[свернуть]
Briz вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
DTioutiou (06.08.2016), v22884 (25.07.2016), volunka (02.08.2016), wizardpnz (20.06.2018)
Старый 02.08.2016, 09:07   #1198
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 242
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Экспорт в three.js: Объект в треугольники

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


var t = [];


p= GetObject("Укажите объект")
// p = Model.Selections[0]


t.push('var geometry=new THREE.Geometry();')
t.push('gv=geometry.vertices;')
t.push('gf=geometry.faces;')

verticies = []
tv = []
tf = []
t.push('gv.push(')

for(ils =0; ils<p.TriListsCount;ils++)
{
ts = p.TriLists[ils]
//system.log(ils+ ' из '+ p.TriListsCount)
for(it = 0; it<ts.Count;it++){
tr = ts.Triangles[it]
// system.log(it+ ' из '+ ts.Count)
/*
Vertex1:[object Object]
Vertex2:[object Object]
Vertex3:[object Object]
Normal:[object Object]
Normal1:[object Object]
Normal2:[object Object]
Normal3:[object Object]
TexCoord1:[object Object]
TexCoord2:[object Object]
TexCoord3:[object Object]
Edge12:false
Edge23:false
Edge31:true
*/
v1 = tr.Vertex1
v2 = tr.Vertex2
v3 = tr.Vertex3



v1 = OkruglitTochku(v1)
v2 = OkruglitTochku(v2)
v3 = OkruglitTochku(v3)




///////////////////////////////////////////////////-------------------------

v1i=tochkuVface(v1)


v2i=tochkuVface(v2)

v3i=tochkuVface(v3)

//v=n
//t.push('n=new THREE.Vector3(' + v.x + ',' + v.y + ',' + v.z + ');')

//t.push('f=new THREE.Face3('+v1i+','+v2i+','+v3i+',n);')
tf.push('new THREE.Face3('+v1i+','+v2i+','+v3i+')')

// system.log(JSON.stringify(v1))

}

}

//system.log(JSON.stringify(tv))
separator = ',\n'
tv0 = tv.join(separator)
t.push(tv0)
t.push(');')


t.push('gf.push(')
separator = ',\n'
t.push(tf.join(separator))
t.push(');')

t.push('geometry.mergeVertices();')
t.push('geometry.computeVertexNormals();')



separator = '\n'
system.askWriteTextFile('js', t.join(separator))



function tochkuVface(v)
{
///////////////////////////////////////////////////-------------------------

//найти точку
inv = -1;
for(iv=0;iv<verticies.length;iv++)
{
if((verticies[iv].x== v.x)&&(verticies[iv].y== v.y)&&(verticies[iv].z== v.z))
{
inv=iv
break
}
}
//--найти точку
if(inv==-1)
{
verticies.push(v)
tv.push('new THREE.Vector3(' + v.x + ',' + v.y + ',' + v.z + ')')
inv = verticies.length-1
}
return inv
///////////////////////////////////////////////////===============================

}


function OkruglitTochku(v)
{
if(v.x!= Math.round(v.x)){v.x = v.x.toFixed(1)}
if(v.y!= Math.round(v.y)){v.y = v.y.toFixed(1)}
if(v.z!= Math.round(v.z)){v.z = v.z.toFixed(1)}
return v
}

[свернуть]
v22884 вне форума   Ответить с цитированием Вверх
Старый 02.08.2016, 16:38   #1199
zulu
Местный
 
Регистрация: 11.12.2015
Адрес: СССР
Сообщений: 400
Сказал(а) спасибо: 445
Поблагодарили 388 раз(а) в 156 сообщениях
Вес репутации: 219
zulu - очень-очень хороший человекzulu - очень-очень хороший человекzulu - очень-очень хороший человекzulu - очень-очень хороший человек
По умолчанию

Оффтоп.
Коллеги, откуда у Вас время есть на изучение скриптов?
Обычно технолог как загнанная лошадь - заказы в работу выпускает, на остальное времени нет.
zulu вне форума   Ответить с цитированием Вверх
6 пользователя(ей) сказали cпасибо:
Старый 06.08.2016, 19:11   #1200
DTioutiou
VIP
 
Аватар для DTioutiou
 
Регистрация: 05.05.2008
Адрес: Коломна
Сообщений: 10,452
Сказал(а) спасибо: 14,824
Поблагодарили 20,865 раз(а) в 5,387 сообщениях
Вес репутации: 5413
DTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспоримаDTioutiou репутация неоспорима
По умолчанию

Цитата:
Сообщение от zulu Посмотреть сообщение
Оффтоп.
...
Чтобы не оффтопить - перенес ближе по теме: http://promebelclub.ru/forum/showthread.php?t=1749
DTioutiou вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков 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


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


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

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