Поделитесь пожалуйста скриптом установки ручек для 10й версии, руки не дойдут 9й переписать
|
День добрый. И так, новая задачка пришла от куда не ждал.
Нужно: 1)создать блок 2)в него добавить панели 3)по окончании скрипта созданный блок делать не видимым (панели из него не отображаются в окне модели, в окне свойств выделен светло-серым) С первыми двумя пунктами ни каких проблем не возникло (для наглядности в двух разных исполнениях): Скрытый текстb = BeginBlock('Block_1'); AddVertPanel(0,0,1000,1000,0); EndBlock(); c = AddBlock('Block_2'); Panel = AddVertPanel(0,0,1000,1000,100); Panel.Owner = c; [свернуть] а вот с третьим всё не так гладко. При использовании .Visible = false; на блоке, каким бы способом он не создавался, код не прерывается, всё отрабатывает, а по окончании просто не добавляет блок в модель. Скрытый текстb = BeginBlock('Block_1'); AddVertPanel(0,0,1000,1000,0); EndBlock(); c = AddBlock('Block_2'); Panel = AddVertPanel(0,0,1000,1000,100); Panel.Owner = c; b.Visible = false; c.Visible = false; [свернуть] Мысль 1) Visible срабатывает слишком хорошо и блока не видно даже в настройках модели, но для программы он есть. *Но материала из него нет и в смете, и восстановление видимости его не находит. Из чего делаю вывод что он просто удаляется программой. Мысль 2) Visible не является применимой к блокам. *Но Block дочерний от List3D, а List3D дочерний от Object3, в котором и определён Visible. По этому к примеру команда alert(Block.Visible); безошибочно отрабатывает. И так вопрос: как скрыть блок? Может кто ещё какие команды знает для работы с видимостью? |
Цитата:
Скрытый текстКод:
/**Имя блока. Желательно уникальное */ [свернуть] UPD: При сохранении объектов, созданных в скрипте, сохраняются только видимые, а все невидимые удаляются (причем так только у корневых объектов. Панель в блоке можно делать невидимой и до сохранения). Поэтому созданный блок прекрасно делался невидимым а по завершении скрипта он не переносился в модель и удалялся. |
Всем привет! Кто то сможет исправить скрип ..использую несколько скриптов после перехода на 10 ... половина накрылась, я от этого далекий..
Скрытый текстFileOptions = 'Труба_Настройки.xml'; MakeProperties(); Action.Properties.Load(FileOptions); Action.OnFinish = function() { Action.Properties.Save(FileOptions); } Action.Continue(); function MakeProperties() { Prop = Action.Properties; Krepej = Prop.NewFurniture('Трубодержатель'); Truba = Prop.NewMaterial('Материал Трубы') Diametr = Prop.NewNumber('Диаметр трубы', 25) Shirina = Prop.NewNumber('Ширина трубы', 25) Vertik = Prop.NewBool('Вертикальная') Vertik.OnChange = function() { Action.Commit() } } if (Vertik.Value) { Bok1 = GetPanel("Укажите Нижнюю панель"); Bok2 = GetPanel("Укажите Верхнюю панель"); y1k = Bok1.GabMax.y y2k = Bok2.GabMin.y SetCamera(p3dTop ) z1 = Bok1.GabMin.z + 1; z2 = Bok1.GabMax.z - 20; } else { Bok1 = GetPanel("Укажите 1-ую панель"); Bok2 = GetPanel("Укажите 2-ую панель"); x1k = Bok1.GabMax.x x2k = Bok2.GabMin.x x1 = x1k + 1; x2 = x2k - 1; SetCamera(p3dLeft) z1 = Bok1.GabMin.z + 1; z2 = Bok1.GabMax.z - 20; } //TPro = Bok2.Contour.TProjection; //alert(Bok1); //SetCamera(Bok1.PanelSideEnum(true)); //SetCamera(Bok1.PanelSideEnum=true); function MoveOdj() { DeleteNewObjects() Truba.SetActive() Ext = AddExtrusion('Труба D25'); Ext.Name = 'Труба' // выталкиваемый профиль //truba = 'Труба25.frw' //Ext.Contour.AddCircle(0, 0, Diametr.Value*0.5) if (Shirina.Value < Diametr.Value) { Ext.Contour.AddCircle(0, 0, Diametr.Value * 0.5); } else { d = Shirina.Value - Diametr.Value p1 = NewPoint(-Diametr.Value * 0.5, 0); p2 = NewPoint(Diametr.Value * 0.5, 0); p3 = NewPoint(-Diametr.Value * 0.5, d); p4 = NewPoint(Diametr.Value * 0.5, d); centre1 = NewPoint(0, -Diametr.Value * 0.5); centre2 = NewPoint(0, Diametr.Value * 0.5 + d); Ext.Contour.AddArc3(p1, centre1, p2); Ext.Contour.AddArc3(p3, centre2, p4); Ext.Contour.AddLine(p1.x, p1.y, p3.x, p3.y); Ext.Contour.AddLine(p2.x, p2.y, p4.x, p4.y); }; if (Vertik.Value) { Ext.Orient(AxisY, AxisZ); // установим длину профиля Ext.Thickness =y2k-y1k; Ext.PositionX = Action.Pos3.x Ext.PositionY = Action.Pos3.y Ext.PositionZ = Action.Pos3.z Ext.Translate(NewVector(0, y1k, 0)) Krepej.Value.Mount1(Bok1, Action.Pos3.x, y1k, Action.Pos3.z, 0) Krepej.Value.Mount1(Bok2, Action.Pos3.x,y2k, Action.Pos3.z, 0) } else { // вытянем профиль вдоль оси X Ext.Orient(AxisX, AxisZ); Ext.RotateX(90); // установим длину профиля Ext.Thickness =x2-x1; Ext.PositionX = Action.Pos3.x Ext.PositionY = Action.Pos3.y Ext.PositionZ = Action.Pos3.z Ext.Translate(NewVector(x1, 0, 0)) Krepej.Value.Mount1(Bok1, x1k, Action.Pos3.y, Action.Pos3.z, 0) Krepej.Value.Mount1(Bok2, x2k, Action.Pos3.y, Action.Pos3.z, 0) } } Action.ShowPoints = true; Action.OnMove = function() {MoveOdj()}; Action.OnClick = function() {Action.Finish()}; Action.Continue(); [свернуть] |
Вложений: 1
Цитата:
|
Вложений: 3
Цитата:
Вложение 123675Вложение 123676Вложение 123678 При любом перемещении курсора происходит установка трубодержателей. Сама труба вместе с нужными трубодержателями устанавливается по ЛКМ. |
Вложений: 1
Цитата:
Цитата:
Код:
//Если существует крепеж, и он не во временной области модели |
Цитата:
|
Всем добрый день.
Возможно ли сделать следующее: Есть список с названиями элементов (в файле Эксель, но можно записать в текстовый формат, csv или другой). С помощью скрипта создать в Модели сборки с названиями из списка. Количество элементов в списке заранее неизвестно. В написании скриптов мои знания сильно ниже среднего :) Поэтому буду долго и мучительно искать нужное решение. Если кто-то знает несложное решение, буду признателен за подсказку. По предыдущему сообщению вопрос снят. Решил другим способом. |
Товарищи скриптописатели, скриптопользователи, и все, неравнодушные к скриптам в Базисе. Предлагаю принять участие в обсуждении модернизации раздела системы Базис (а именно скриптов). Основная идея изложена в этом сообщении.
|
Текущее время: 10:59. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL