| Author | 
                
                  Topic   | 
                  | 
               
              
                | 
                 vtsoy 
                 
                
                3 Posts  | 
                
                  
                    
                      
                       Posted - 06/09/2005 :  08:01:51
                      
  | 
                     
                    
                       Доброе время суток, уважаемые
  Сабж....как быстро сваять кусок кода (макрос), для расчета периметра коннектора. Задача упоминавшаяся: есть шкаф, есть рабочее место (порт), но трасса проходит таким образом (с использованием коннектора), что на ней (трассе) более одного (в моем случае - 4 поворота на 90 градусов. Один проблем (для меня) в некоторых случаях трасса поворачивает на 180 градусов по отношению к шкафу. Пример: шкаф (как нулевая отметка)-5м на юг- 20м на запад- 10 м. на юг - 5 метров на восток- рабочее место. (Восток, юг, север, запад - соотв-т сторонам монитора... жуть сам запутался  ) Т.е. имеет место "отрицательное" направление части коннектора. Обычно (до этого) всегда делал кабельную канализацию из прямых кусков, в кастомсвойствах автоматически (формулой) обсчитывал длину, количество концов в линии и иные свойства (запас кабеля у розетки, у шкафа, запас на спуски/подъемы, межэтажные запасы и проч.) Затем все это визардом в ексел.. дальше все просто. Счас решил попробовать коннектором и.. вот, столкнулся :( с незнанием ВБА. С уважением, Андрей | 
                     
                   
                 | 
               
              
                | 
                 denis 
                 
                
                7 Posts  | 
                
                  
                    
                      
                       Posted - 06/10/2005 :  07:28:25
                      
  | 
                     
                    
                      |  Как я понял ты из координат (X,Y) шкафа вычитаешь координаты раб. места и получаешь длину кабеля. Но вомногих случаях это не дает верный результат. Для более точного расчета нужно брать какую-нибудь третью точку от которой расчитывается длина до раб. места. А длина кабеля от шкафа до этой точки будет величинной постоянной. | 
                     
                    
                        | 
                     
                   
                 | 
               
              
                | 
                 Tumanov 
                 
                
                Russia 
                1198 Posts  | 
                
                  
                    
                      
                       Posted - 06/10/2005 :  07:46:29
                      
  | 
                     
                    
                       Это считает геометрию шейпа: Function KabLength(Shap As Shape) As Double  Dim i As Integer  Dim Summa As Double  Dim dx As Double, dy As Double  Dim nRows As Integer  nRows = Shap.RowCount(visSectionFirstComponent) - 1  Summa = 0  For i = 1 To nRows - 1   dx = (Shap.CellsSRC(visSectionFirstComponent, i, 0) - Shap.CellsSRC(visSectionFirstComponent, i + 1, 0)) * 0.0254   dy = (Shap.CellsSRC(visSectionFirstComponent, i, 1) - Shap.CellsSRC(visSectionFirstComponent, i + 1, 1)) * 0.0254   Summa = Summa + Sqr(dx ^ 2 + dy ^ 2)  Next  KabLength = Summa End Function | 
                     
                    
                        | 
                     
                   
                 | 
               
              
                | 
                 vtsoy 
                 
                
                3 Posts  | 
                
                  
                    
                      
                       Posted - 06/10/2005 :  13:19:07
                      
  | 
                     
                    
                       2 Denis. Не совсем. Метод "разности координат" :)) - более чем не идеален, нужно порой иметь не одну дополнительную базовую точку, а несколько, как-то их именовать, расставлять в процессе проектирования, делать точкой отсчета какую-то одну (или несколько)короче, головная боль.
  Проще послойно обсчитать кол-во шейпов (в данном случае коннекторов), вычислить периметр каждого, добавить спуски-подъемы, запас на разделку и запас в шкафу. Добавить 10% и би хэппи. :)
  2 Туманов БАльшое человеческое спасибо! :) Ничего (почти) из кода не понял, но это пока не важно. 
  2 олл А что, даже просто внимательно проштудировав этот форум, понабивав собственные шишки в борьбе с проектами и их реализацией в визио, вполне можно создать эдакий инструмент, с помощью которого можно делать собственно проектирование "непринужденно, легко и изящно" !))
  С уважением, Андрей | 
                     
                    
                        | 
                     
                   
                 | 
               
              
                |   | 
                
                  Topic   | 
                  | 
               
             
           | 
         
       
     |