Показать сообщение отдельно
Старый 18.03.2024, 15:03   #283
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 455
Сказал(а) спасибо: 243
Поблагодарили 1,099 раз(а) в 210 сообщениях
Вес репутации: 388
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Вырез мойки

1) Выделить одну фурнитурину.
2) Запустить скрипт.

Добавляет отверстие произвольной фурнитуры в контуры всех панелей, которых касаются отверстия этой фурнитурины.

PHP код:

//p = GetPanel("Укажи панель.")

Model.Selections[0]
arp m.FindFastenedObjects()




for(var 
i3 0;i3<arp.length;i3++){
 
parp[i3]
 if(
p.AsPanel){



arp m.FindFastenedObjects()
csub NewContour()
for (var 
0m.Holes.Counti++) {

    var 
c0_ m.Holes[i]

    
HolePosG m.ToGlobal(c0_.Position);
    
HolePosG2 p.ToObject(HolePosG)




    if (
c0_.Contour==null)
{
    
csub.AddCircle(HolePosG2.xHolePosG2.yc0_.Radius)
}
    else{


    
c_ c0_.Contour.MakeCopy()
    
c_.Symmetry(0001false);

    var 
c0 testC(c_)


    
c0.LocalMatrix c0_.TransformMatrix()

    
c0.AssignTransform(m)



    
c0.Position HolePosG



    
//posH = c0.ToGlobal(NewVector(0, 0, 0))
    //posL = p.ToObject(posH)
    //csub.AddList(c_.MakeCopy())
    //csub.Move(posL.x,posL.y)


    
for (var 0c_.Countj++) {
        var 
e1 c_[j]
        if (
e1.ElType == 3) {

        }
        else {
            var 
v1 c0.ToGlobal(NewVector(e1.Pos1.xe1.Pos1.y0))
            var 
v1 p.ToObject(v1)
            
p1 NewPoint(v1.xv1.y)

            var 
v2 c0.ToGlobal(NewVector(e1.Pos2.xe1.Pos2.y0))
            var 
v2 p.ToObject(v2)
            
p2 NewPoint(v2.xv2.y)
            if (
e1.ElType == 2) {


                var 
vm c0.ToGlobal(NewVector(e1.ArcCenter().xe1.ArcCenter().y0))
                var 
vm p.ToObject(vm)
                
pm NewPoint(vm.xvm.y)
                var 
arc csub.AddArc3(p1,pm,p2)
if(
arc == undefined)
{
    
csub.AddLine(p1,p2)
}





            }else
            {
                
csub.AddLine(p1,p2)
            }



        }
        
//testP(v1)
    
}
}


}

Undo.Changing(p)
p.Contour.Subtraction(csub)

p.Build()
DeleteNewObjects()
}}

function 
testC(c00name '') {
    var 
c0 AddContour()
    
c0.Name name
    
var c0.Contour
    c
.AddList(c00.MakeCopy())

    return 
c0
}



function 
testP(v1name ""rad 10) {
    var 
c0 AddContour()
    
c0.Name name
    
var c0.Contour
    c
.AddCircle(00rad)
    
c0.Translate(v1)
}

function 
Distance(p1p2) {
    var 
dx p2.p1.x;
    var 
dy p2.p1.y;
    var 
dz 0;
    return 
Math.sqrt(dx dx dy dy dz dz);

Были прошлые версии, но не правильно крутили контур на панеле.
Миниатюры
Снимок.jpg  

Последний раз редактировалось AlexBolton; 18.03.2024 в 17:27. Причина: оформление
v22884 вне форума   Ответить с цитированием Вверх
10 пользователя(ей) сказали cпасибо: