|
|
|
|
|
13.01.2014, 13:22
|
|
БАЗИС 8 - Скрипты
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
13.01.2014, 13:22
Рейтинг:
()
ВНИМАНИЕ! Правила выкладывания скриптов.
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 объект по его типу') [свернуть]
Обратите внимание на полезные ответы в этой теме!
Последний раз редактировалось systland; 26.12.2017 в 11:52..
Причина: Добавил объявление.
|
Просмотров: 1389935
|
6 пользователя(ей) сказали cпасибо:
|
|
24.01.2014, 14:57
|
#111
|
Местный
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
|
Для округления: YInc = Math.round(YInc);
Скрытый текст
PHP код:
// Установка полок в секцию ShelfCount = NewNumberInput('Количество полок'); ShelfCount.Value = 5; KrVidimKorp = NewButtMaterialInput("вид"); KrNotVidimKorp = NewButtMaterialInput("невид");
SetCamera(p3dFront); LeftPanel = GetPanel('Укажите левую панель'); RightPanel = GetPanel('Укажите правую панель'); Left = LeftPanel.GabMax.x; Right = RightPanel.GabMin.x; Top = GetEdge('Укажите верхнюю границу', AxisX).First.y; Bottom = GetEdge('Укажите нижнюю границу', AxisX).First.y;
SetCamera(p3dLeft); Back = GetEdge('Укажите заднюю границу', AxisY).First.z; Front = GetEdge('Укажите переднюю границу', AxisY).First.z;
Offset = 0; Count = ShelfCount.Value; Thick = ActiveMaterial.Thickness;
PosY = Bottom; SectionHeight = Top - Bottom; YInc = (SectionHeight - Count * Thick) / (Count + 1); YInc = Math.round(YInc);
shag = 64; Zpol = Front - 7; ZPolder = Zpol % 64;
LCorner = OpenFurniture('Крепёж\\полкодержатель.f3d');
Gl = Front - Back; for (var k = 0; k < Count; k++) { PosY += YInc; Panel = AddHorizPanel(Left + Offset, Back + Offset, Right - Offset, Zpol, PosY); Panel.TextureOrientation = TextureOrientation.Horizontal; Panel.AddButt(KrNotVidimKorp, 0); Panel.AddButt(KrNotVidimKorp, 1); Panel.AddButt(KrVidimKorp, 2); Panel.AddButt(KrNotVidimKorp, 3);
//Присваиваем панели имя Panel.Name = 'Полка съемная'; LCorner.Mount(Panel, LeftPanel, Left, PosY, Back + shag); LCorner.Mount(Panel, RightPanel, Right, PosY, Back + shag); LCorner.Mount(Panel, LeftPanel, Left, PosY, (Zpol - ZPolder))//Back + Sdvig); LCorner.Mount(Panel, RightPanel, Right, PosY, (Zpol - ZPolder))//Back + Sdvig); PosY += Thick; } SetCamera(p3dFront);
[свернуть]
Последний раз редактировалось AlexBolton; 25.01.2014 в 17:51.
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
24.01.2014, 15:03
|
#112
|
VIP
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
|
Цитата:
Сообщение от Ozimko
Извините за нескромный вопрос - и гиде рыть?
|
Здесь...
shag = 64; //отступ полкодержателя сзади
Zpol = Front - 7; //ширна полки
ZPolder = Zpol % 64; //остаток от деления ширины полки на 64 замените на 50 и посмотрите что будет
Отступ заднего должен быть на 64 мм а шаг между полкодержателями кратен 50 мм.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
24.01.2014, 15:44
|
#113
|
VIP
Регистрация: 18.01.2008
Сообщений: 1,047
Сказал(а) спасибо: 2,864
Поблагодарили 1,853 раз(а) в 435 сообщениях
Вес репутации: 695
|
По адресу ТУТ выложили документацию по скриптам.
Script.pdf - руководство пользователя в обычном книжном варианте.
Script_booklet.pdf - руководство пользователя в виде буклета. Распечатывется на листе перый и последний лист. Затем второй и предпоследний и т.д. Распечатываем, а потом сшиваем посередине скобами. Получается книжка. А если есть у принтера функция двусторонней печати, то еще меньше листов получится.
Последний раз редактировалось nayrogi; 24.01.2014 в 16:07.
Причина: поправил ссылку
|
|
|
10 пользователя(ей) сказали cпасибо:
|
|
24.01.2014, 16:48
|
#114
|
Пользователь
Регистрация: 18.05.2010
Сообщений: 85
Сказал(а) спасибо: 51
Поблагодарили 74 раз(а) в 29 сообщениях
Вес репутации: 193
|
Есть отличный скрипт "Двери купе". Где можно под свои нужды поменять материалы, зазоры, фрагменты, в общем получить то, что нужно именно тебе. Но есть там маленькая ложечка дегтя. Погонаж создается атрибутом нет в свойтвах погонный. После этого его не будет ни спецификациях, ни в смете. Вопрос: как это исправить?
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
25.01.2014, 00:04
|
#115
|
Местный
Регистрация: 16.11.2011
Адрес: Москва / Пенза
Сообщений: 1,135
Сказал(а) спасибо: 307
Поблагодарили 1,257 раз(а) в 524 сообщениях
Вес репутации: 516
|
Цитата:
Сообщение от Алексан
Есть отличный скрипт "Двери купе". Где можно под свои нужды поменять материалы, зазоры, фрагменты, в общем получить то, что нужно именно тебе. Но есть там маленькая ложечка дегтя. Погонаж создается атрибутом нет в свойтвах погонный. После этого его не будет ни спецификациях, ни в смете. Вопрос: как это исправить?
|
Если материал занесен в погонные материалы, то и строится он нормально, как погонаж, с отображением в смете.
Если же материал в площадных - то профиль стоится не из погонажа...
Так что если вы добавите из этого скрипта все материалы в свою базу (тестовую, естественно) и внесете необходимые используемые материалы в список погонных - то будет вам счастье.
Проверенно на "Вертикальный профиль С".
__________________
Нахожусь в режиме поиска интересных задач, связанных с Базисом. Москва, 2015.
|
|
|
9 пользователя(ей) сказали cпасибо:
|
|
25.01.2014, 12:33
|
#116
|
Пользователь
Регистрация: 18.05.2010
Сообщений: 85
Сказал(а) спасибо: 51
Поблагодарили 74 раз(а) в 29 сообщениях
Вес репутации: 193
|
Цитата:
Сообщение от Am0ralist
Если материал занесен в погонные материалы, то и строится он нормально, как погонаж, с отображением в смете.
Если же материал в площадных - то профиль стоится не из погонажа...
Так что если вы добавите из этого скрипта все материалы в свою базу (тестовую, естественно) и внесете необходимые используемые материалы в список погонных - то будет вам счастье.
Проверенно на "Вертикальный профиль С".
|
Сделал все замены, занес в таблицу погонных материалов. Ни каких изменений. Но обнаружилась интересная особенность: вся левая дверь и направляшки строятся правильно, остальной погонаж неправильно. Подозреваю что в момент построения погоножа должно быть активно свойство ширина материала, но куда и какой код добавить, вот с этим большая проблема
|
|
|
25.01.2014, 13:20
|
#117
|
Пользователь
Регистрация: 18.05.2010
Сообщений: 85
Сказал(а) спасибо: 51
Поблагодарили 74 раз(а) в 29 сообщениях
Вес репутации: 193
|
Догадка оказалась верна. Есть материал в базе или нет его, никак на атрибут погонный не влияет. Достаточно было явно задать ширину в function DverC и центральная и правая дверь стали строится правильно
Скрытый текст
PHP код:
SetCamera(p3dFront);
ViewAll();
KolDv = NewNumberInput("Кол-во дверей");
KolDv.Value = 3;
Asim = NewButtonInput("Вертикальный профиль С");
Sim = NewButtonInput("Вертикальный профиль Н");
OkBtn = NewButtonInput("Построить");
Left = GetEdge("Укажите левую границу", AxisY).First.x;
Right = GetEdge("Укажите правую границу", AxisY).First.x;
Top = GetEdge("Укажите верхнюю границу", AxisX).First.y;
Bottom = GetEdge("Укажите нижнюю границу", AxisX).First.y;
SetCamera(p3dLeft);
Front = GetEdge('Укажите переднюю границу', AxisY).First.z;
if (Left > Right)
{
AAA = Left;
Left = Right;
Right = AAA;
}
if (Bottom > Top)
{
AAA = Bottom;
Bottom = Top;
Top = AAA;
}
//задание параметров профилей, ниши и т.д.
WidthNiche = Right - Left; //ширина ниши
HeightNiche = Top - Bottom; //высота ниши
LengthNaprav = WidthNiche - 2; //длина нижней и верхней направляющих
HeightProf = HeightNiche - 40; //высота профиля ручки
WidthProfC = 26; //ширина асимметричного профиля двери
ThickProfC = 34; //толщина асимметричного профиля двери
WidthProfH = 35.2; //ширина симметричного профиля двери
ThickProfH = 34.5; //толщина симметричного профиля двери
HeightProfBot = 56; //высота нижнего профиля двери
HeightProfTop = 21; //высота верхнего профиля двери
HeightProfCentr = 25; //высота среднего профиля двери
ThickRamcka = 14.5; //толщина горизонтальных профилей двери
ThickNapBot = 8; //толщина нижней направляющей
WidthNapBot = 63; //ширина нижней направляющей
WidthNapTop = 82; //ширина верхней направляющей
ZagNapol = 8; //заглубление наполнения двери толщиной 10 мм
ZdvigProf = 9; //здиг асимметричного профиля относительно симметричному профилю
ZaglubRam = 0.5; //заглубление горизонтальных профилей в профиль ручку
Nalog = KolDv.Value - 1;//кол-во наложений дверей
AxisXD = WidthNiche / KolDv.Value;
AxisXD2 = (WidthNiche / KolDv.Value) + Left;
system.log("Центр = " + AxisXD2);
SD = WidthNiche / KolDv.Value;
AxisFront = WidthNapTop * 0.25; //ось передней двери
AxisBack = WidthNapTop * 0.75; //ось задней двери
ZvigNapBot = (WidthNapTop - WidthNapBot) * 0.5; //положение нижней направляющей для симметричного профиля
//Положенеие по глубине задней двери для симметричного профиля
ZdvigRamckaHback = AxisBack - (ThickRamcka * 0.5);
ZdvigProfHback = AxisBack - (ThickProfH * 0.5);
//DspProfHback =
//Положенеие по глубине передней двери для симметричного профиля
ZdvigRamckaHfront = AxisFront - (ThickRamcka * 0.5);
ZdvigProfHfront = AxisFront - (ThickProfH * 0.5);
//DspProfHback =
//Положенеие по глубине задней двери для асимметричного профиля
ZdvigRamckaCback = Front - AxisBack - (ThickRamcka * 0.5) - ZdvigProf;
ZdvigProfCback = Front - AxisBack - (ThickProfH * 0.5);
DspProfCback = Front - AxisBack - (10 / 2) - ZdvigProf;
//Положенеие по глубине передней двери для асимметричного профиля
ZdvigRamckaCfront = Front - AxisFront - (ThickRamcka * 0.5) - ZdvigProf;
ZdvigProfCfront = Front - AxisFront - (ThickProfH * 0.5);
DspProfCfront = Front - AxisFront - (10 / 2) - ZdvigProf;
WidthDverC = ((WidthNiche + (WidthProfC * Nalog)) / KolDv.Value); //ширина двери для асимметричного профиля
WidthDverC1 = Math.floor(WidthDverC);
system.log("Ширина двери = " + WidthDverC1);
LengthProfRam = (WidthDverC1 - (WidthProfC * 2)) + (ZaglubRam * 2); //длина горизонтальныз профилей для асимметричного профиля
LengthProfRam1 = Math.floor(LengthProfRam);
system.log("Длинна гор проф = " + LengthProfRam1);
//определение проемов для установки элементов дверей по осям X и Y для асимметричного профиля
LeftX = Left + WidthProfC; //левая граница + толщина профиля ручки
RightX = Right - WidthProfC; //правая граница - толщина профиля рчки
LeftRam = Left + WidthProfC - ZaglubRam; //граница слева горизонт профилей
LeftRam1 = WidthDverC1 - ZaglubRam; //граница слева горизонт профилей для 1-го пересечения дверей
LeftRam2 = (WidthDverC1 * 2) - WidthProfC - ZaglubRam; //граница слева горизонт профилей для 2-го пересечения дверей
CentrLeft1 = WidthDverC1 - WidthProfC; //от центра слева для 1-го пересечения дверей
CentrLeft2 = (WidthDverC1 * 2) - WidthProfC; //от центра слева для 2-го пересечения дверей
CentrRight2 = (WidthDverC1 * 2) - (WidthProfC * 2); //от центра справа для 2-го пересечения дверей
LeftDsp = LeftX - ZagNapol; //граница наполнения слева
RightDsp = RightX + ZagNapol; //граница наполнения справа
CentrDspLeft1 = WidthDverC1 - WidthProfC + ZagNapol; //граница наполнения от центра слева для 1-го пересечения дверей
CentrDspRight1 = WidthDverC1 - ZagNapol; //граница наполнения от центра справа для 1-го пересечения дверей
CentrDspLeft2 = (WidthDverC1 * 2) - (WidthProfC * 2) + ZagNapol; //граница наполнения от центра слева для 2-го пересечения дверей
CentrDspRight2 = (WidthDverC1 * 2) - WidthProfC - ZagNapol; //граница наполнения от центра справа для 2-го пересечения дверей
BotNap = AddExtrusion(); //нижняя направляющая для асимметричного профиля
BotNap.MaterialName = "Направляющая нижняя двухполозная";
File = 'Направляющая нижняя.frw';
BotNap.Contour.Load(File);
BotNap.Rotate(AxisY, -90);
BotNap.Thickness = LengthNaprav;
BotNap.PositionX = Right - 1;
BotNap.PositionY = Bottom;
BotNap.PositionZ = Front - ZvigNapBot - ZdvigProf;
BotNap.Name = "Направляющая нижняя";
TopNap = AddExtrusion(); //верхняя направляющая
TopNap.MaterialName = "Направляющая верхняя двухполозная";
File = 'Направляющая верхняя.frw';
TopNap.Contour.Load(File);
TopNap.Rotate(AxisY, -90);
TopNap.Thickness = LengthNaprav;
TopNap.PositionX = Right - 1;
TopNap.PositionY = Top;
TopNap.PositionZ = Front;
TopNap.Name = "Направляющая верхняя";
system.log("Ширина двери = " + WidthDverC1);
switch (KolDv.Value)
{
case 2:
//установка левой двери
DverC(Left, ZdvigProfCback, +WidthDverC1 + Left, LeftRam, ZdvigRamckaCback,
LeftDsp, CentrDspLeft1 + Left, DspProfCback);
//установка правой двери
DverC(CentrLeft1 + Left, ZdvigProfCfront, Right, LeftRam1 + Left,
ZdvigRamckaCfront, CentrDspRight1 + Left, RightDsp, DspProfCfront);
break
case 3:
//установка левой двери
DverC(Left, ZdvigProfCback, +WidthDverC1 + Left, LeftRam,
ZdvigRamckaCback, LeftDsp, CentrDspLeft1 + Left, DspProfCback);
//установка средней двери
DverC(CentrLeft1 + Left, ZdvigProfCfront, CentrLeft2 + Left, LeftRam1 + Left,
ZdvigRamckaCfront, CentrDspRight1 + Left, CentrDspLeft2 + Left, DspProfCfront);
//установка правой двери
DverC(CentrRight2 + Left, ZdvigProfCback, Right, LeftRam2 + Left,
ZdvigRamckaCback, CentrDspRight2 + Left, RightDsp, DspProfCback).AnimType = AnimationType.SDoorRight;
break
}
function DverC(XL, ZProfCLR, XR, XT, ZT, X1P, X2P, ZP)
{
Block = BeginBlock("Дверь купе")
ProfCL = AddExtrusion(); //профиль ручка асимметричный левый
ProfCL.MaterialWidth = WidthProfC
ProfCL.MaterialName = "Вертикальный профиль С";
File = 'Профиль С.frw';
ProfCL.Contour.Load(File);
ProfCL.Rotate(AxisX, -90);
ProfCL.Thickness = HeightProf;
ProfCL.PositionX = XL;
ProfCL.PositionY = Bottom + 10;
ProfCL.PositionZ = ZProfCLR;
ProfCL.Name = "Профиль ручка";
ProfCR = AddExtrusion(); //профиль ручка асимметричный правый
ProfCR.MaterialWidth = WidthProfC
ProfCR.MaterialName = "Вертикальный профиль С";
File = 'Профиль С.frw';
ProfCR.Contour.Load(File);
ProfCR.Contour.Symmetry(0, 0, 0, 1, false)
ProfCR.Rotate(AxisX, -90);
ProfCR.Thickness = HeightProf;
ProfCR.PositionX = XR;
ProfCR.PositionY = Bottom + 10;
ProfCR.PositionZ = ZProfCLR;
ProfCR.Name = "Профиль ручка";
ProfBot = AddExtrusion(); //профиль нижний
ProfBot.MaterialWidth = HeightProfBot
ProfBot.MaterialName = "Рамка нижняя";
File = 'Профиль нижний.frw';
ProfBot.Contour.Load(File);
ProfBot.Rotate(AxisY, 90);
ProfBot.Thickness = +LengthProfRam1;
ProfBot.PositionX = XT;
ProfBot.PositionY = Bottom + 10;
ProfBot.PositionZ = ZT;
ProfBot.Name = "Профиль нижний";
ProfTop = AddExtrusion(); //профиль верхний
ProfTop.MaterialWidth = HeightProfTop
ProfTop.MaterialName = "Рамка верхняя";
File = 'Профиль верхний.frw';
ProfTop.Contour.Load(File);
ProfTop.Rotate(AxisY, 90);
ProfTop.Thickness = +LengthProfRam1;
ProfTop.PositionX = XT;
ProfTop.PositionY = Top - 30;
ProfTop.PositionZ = ZT;
ProfTop.Name = "Профиль верхний";
ActiveMaterial.Make('ДСП EGGER 10 мм', 10); //установка наполнения
DSP = AddFrontPanel(X1P, Bottom + 57.5, X2P, Top - 42.5, ZP);
DSP.TextureOrientation = ftoVertical;
DSP.Name = "Панель двери"
EndBlock();
Block.AnimType = AnimationType.SDoorLeft;
return Block;
}
SetCamera(p3dFront);
[свернуть]
Последний раз редактировалось AlexBolton; 25.01.2014 в 17:50.
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
25.01.2014, 13:28
|
#118
|
Местный
Регистрация: 16.11.2011
Адрес: Москва / Пенза
Сообщений: 1,135
Сказал(а) спасибо: 307
Поблагодарили 1,257 раз(а) в 524 сообщениях
Вес репутации: 516
|
Цитата:
Сообщение от Алексан
Сделал все замены, занес в таблицу погонных материалов. Ни каких изменений. Но обнаружилась интересная особенность: вся левая дверь и направляшки строятся правильно, остальной погонаж неправильно. Подозреваю что в момент построения погоножа должно быть активно свойство ширина материала, но куда и какой код добавить, вот с этим большая проблема
|
да, вы правы, ночью не все ручки проверил и на количество в смете не обратил внимания, в смысле, что его маловато на это количество дверей.
даже если разберемся, надо будет массово писать в Базис, чтоб они исправили это положение и лучше всего добавили возможность в скриптах указывать данный параметр. Хотя разговор с Дмитрием на тему тех.поддержки скриптов был не оптимистичен и сводился к тому, что как вывалили, таким и пользуйтесь, а им на скрипты все равно. Но если обращений будет много и/или сразу на имя руководства, может и получиться...
Добавлено через 3 минуты
Цитата:
Сообщение от Алексан
Догадка оказалась верна. Есть материал в базе или нет его, никак на атрибут погонный не влияет. Достаточно было явно задать ширину в function DverC и центральная и правая дверь стали строится правильно
|
что ж, это и к лучшему!
__________________
Нахожусь в режиме поиска интересных задач, связанных с Базисом. Москва, 2015.
|
|
|
Пользователь сказал cпасибо:
|
|
26.01.2014, 13:15
|
#119
|
VIP
Регистрация: 05.05.2008
Адрес: Коломна
Сообщений: 10,452
Сказал(а) спасибо: 14,824
Поблагодарили 20,865 раз(а) в 5,387 сообщениях
Вес репутации: 5413
|
Цитата:
Сообщение от Am0ralist
Хотя разговор с Дмитрием на тему тех.поддержки скриптов был не оптимистичен и сводился к тому, что как вывалили, таким и пользуйтесь, а им на скрипты все равно. Но если обращений будет много и/или сразу на имя руководства, может и получиться...
|
Вполне может быть. Скрипты даже в мануал не входят. Недокументированная и негарантированная опция. Поэтому писать можно, на info@bazissoft.ru, техподдержка по скриптам, естественно, не ответит, это не ее работа, но если будет что-то интересное - кто надо, увидит.
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
27.01.2014, 10:24
|
#120
|
Пользователь
Регистрация: 18.05.2010
Сообщений: 85
Сказал(а) спасибо: 51
Поблагодарили 74 раз(а) в 29 сообщениях
Вес репутации: 193
|
Цитата:
Сообщение от Am0ralist
Хотя разговор с Дмитрием на тему тех.поддержки скриптов был не оптимистичен и сводился к тому, что как вывалили, таким и пользуйтесь, а им на скрипты все равно.
|
Я с Дмитрием полностью согласен. Техподдержка по скриптам просто смысла не имеет. Держать програмиста, что бы он на каждый "бзик" пользователя писал проги? Или каждого учил програмировать и помогал освоить ООП. Нонсенс.
Представте Майкрософт мне по заказу пишет макрос для Excel, или по запросу объясняет как работает тот или иной оператор в visual basic
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 15:04. Часовой пояс GMT +3.
|