Цитата:
Цитата:
|
Цитата:
|
Как удалить после Action.Commit() ?
p = Model.Selections[0] pCopy = AddCopy(p); Action.Commit() DeleteObject(pCopy); //Здесь не работает. Или сразу главный вопрос: Как определить какие именно отверстия из фурнитуры цепляют конкретную панель? Если, например, в фурнитурине 6 отверстий и больше. |
Цитата:
Цитата:
Т.к. добавление объектов в модель идёт последовательно, то при добавлении 5 объектов скриптом в модель, последние 5 объектов - добавленные скриптом (небольшая оговорочка - если добавлен блок, содержащий 4 объекта, то в модели последним объектом будет блок, а остальные 4 будут внутри блока, согласно иерархии). Вот небольшой пример по добавлению объекта, применению изменений и удалению объекта: PHP код:
|
Как получить контур панели с подрезкой канта?
|
Цитата:
Цитата:
PHP код:
|
Хорошего дня всем! А сеть скрипт для восстановления пароля от Базы материалов? Найти не могу. Поможете? Спасибо заранее
|
нужно открыть файл базы данных в стороннем редакторе и там есть таблица типа user или accaunt и удалить там записи с паролями
|
Главная задача: DXF с отверстиями по слоям с именами, например o7, o8h10, и т.п.
На этом пути промежуточный результат дырки в панелях: (спасибо Letos) Скрытый текстModel.forEachPanel(function(p) { fs = krepej(p) //alert(fs[0]) // fs = fs.split(",") Dyriavim(fs,p) } ) function krepej(p) { if(!p.AsPanel) {return} ar = p.FindConnectedFasteners(p) return ar } function Dyriavim(fs,p) { // alert(fs[0]) for(iif=0;iif<fs.length;iif++) { f=fs[iif] // alert(f) c = f.Holes; var i = 0; сk = f.Holes.Count; HoleCon = NewContour(); while (i < сk) { if(!CheckHole(c[i],f, p)&&!CheckHole2(c[i],f, p)) { i++ continue } if (CheckWithPanel(f.NToGlobal(c[i].Direction), p)) { i++ continue } if (c[i].Radius<1.9/2) { i++ continue } HolePosG = f.ToGlobal(c[i].Position); p.Selected = false HolePosG = p.ToObject(HolePosG) if (c[i].Contour==null) { HoleCon.AddCircle(HolePosG.x, HolePosG.y, c[i].Radius) } else { HoleCon.AddList(c[i].Contour.MakeCopy()); HoleCon.Move(HolePosG.x, HolePosG.y) } i++ } MoykaPos = c.Position; StartEditing(p) Undo.Changing(p) //StartEditing(p) p.Contour.Subtraction(HoleCon); system.log(p.ArtPos+ " -- "+p.Name) p.Build() } } // Чуть доработан скрипт Letos'a (длинные отверстия не дырявил) function CheckHole2(hole,fast, panel){ for(id=1;id<20;id++) { if(CheckHole(hole,fast, panel,id/20)) { return true } } return false } function CheckHole(hole,fast, panel,delim){ var holeCenter = fast.ToGlobal({ x: hole.Position.x + hole.Direction.x * (hole.Depth * delim), y: hole.Position.y + hole.Direction.y * (hole.Depth * delim), z: hole.Position.z + hole.Direction.z * (hole.Depth * delim), }) holeCenter = panel.ToObject(holeCenter); return (holeCenter.x > panel.GMin.x) && (holeCenter.x < panel.GMax.x) && (holeCenter.y > panel.GMin.y) && (holeCenter.y < panel.GMax.y) && (holeCenter.z > panel.GMin.z) && (holeCenter.z < panel.GMax.z); } function Equals(n1, n2){ return Math.abs(n1 - n2) < 0.001; } function EqualsV(v1, v2) { return Equals(v1.x, v2.x) && Equals(v1.y, v2.y) && Equals(v1.z, v2.z); } function CheckWithPanel(gDir, panel){ return (EqualsV(gDir, panel.NToGlobal(AxisX)) || EqualsV(gDir, panel.NToGlobal(Axis_X)) || EqualsV(gDir, panel.NToGlobal(AxisY)) || EqualsV(gDir, panel.NToGlobal(Axis_Y))) } [свернуть] Как узнать глубину отверстия в пласти панели? (при допущении что отверстие в пласть входит перпендикулярно, хотя ... может кто знает как найти и угол вхождения в пласть(некоторые станки могут сверлить под углом)??) |
Цитата:
PHP код:
PHP код:
|
Текущее время: 13:05. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL