Пожалуйста, не блокируйте рекламу!

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн МихалычЪ

  • **
  • 67
  • Репутация: +7/-0
  • Пол: Мужской
SIP панели
« Ответ #60 : Ноября 08, 2017, 10:37:20 »

Test

Вечерком подготовлю все свои архивы и выложу.  Там посмотрите.  Размеры на Фронтонные панели в листе спецификаций наносятся автоматически.

*

Оффлайн makcbin

  • **
  • 61
  • Репутация: +7/-0
SIP панели
« Ответ #61 : Ноября 13, 2017, 14:37:51 »
С постоянным отступом конечно попроще будет.
Но я встречал проекты, где все-таки разные отступы. Не знаю, насколько это востребовано, но лучше пусть будет универсальная панелька. Пока правда не знаю, как это реализовать. Через Polygon operations не получается загнать массив отступов.

*

Оффлайн Kuvbur

  • ^_^
  • ****
  • 370
  • Репутация: +69/-0
  • Пол: Мужской
SIP панели
« Ответ #62 : Ноября 13, 2017, 16:35:28 »
Через Polygon operations не получается загнать массив отступов.

otr_pl - массив координат x,y
k_otr_pl - количество отрезков
offset_l - смещение
      ch = INITADDONSCOPE ("PolyOperations", "", "")
      PREPAREFUNCTION ch, "CreateContainer", "mySourceContainer", ""
      PREPAREFUNCTION ch, "CreateContainer", "myDestinationContainer", ""
      PREPAREFUNCTION ch, "SetSourceContainer",      "mySourceContainer", ""
      PREPAREFUNCTION ch, "SetDestinationContainer",   "myDestinationContainer", ""
      nVertices = k_otr_pl
      nContours = 1
      dim vertArray[][]
      dim contourArray[]
      for i=1 to k_otr_pl
         vertArray[i][1] = otr_pl[i][1]
         vertArray[i][2] = otr_pl[i][2]
         vertArray[i][3] = 0
      next i
      contourArray[1] = k_otr_pl+1
      PREPAREFUNCTION ch, "Store", "poly1", nVertices, nContours, vertArray, contourArray
      itemIdx=1
      PREPAREFUNCTION  ch, "OffsetParams", "", itemIdx, offset_l
      dim resPolyIDArray[]
      numPoly = CALLFUNCTION (ch, "ResizeContour", "poly1", resPolyIDArray)
      polygonID = resPolyIDArray[1]
      gosub 100   ! Get one polygon contour data (without contours)
      if nsp > 0 then
         poly2_ nsp/3, 1+4, use(nsp)  !!!! ТУТ ЗАБИРАТЬ РЕЗУЛЬТАТ
         for i = 1 to nsp step 3
            hotspot2 get(2)
            get(1)
         next i
      else
         pen 20
         text2 0,0,"!!ERROR!!"
      endif
      CLOSEADDONSCOPE (ch)

100:
! ==============================================================================
! Get GDL Polygon
! ------------------------------------------------------------------------------
! Input variables:
!   ch:            Channel ID
!   polygonID:      Polygon ID
!
! Returned variables:
!   GDL stack:         GDL polygon
! ==============================================================================
   dim resVertices[]
   numVertices = CALLFUNCTION (ch, "GetVertices", polygonID, resVertices)
   numVertices = numVertices / 3
   dim contArr[]
   numContours = CALLFUNCTION (ch, "GetContourEnds", polygonID, contArr)
   for contIndex = 1 to numContours
      if contIndex = 1 then
         begIdx = 0
      else
         begIdx = contArr[contIndex] - 1
      endif
      if contIndex = numContours then
         endIdx = numVertices - 1
      else
         endIdx = contArr[contIndex + 1] - 2
      endif
      bClosed = 0
      bStartWithLast = 0
      index = endIdx * 3
      lastVertX = resVertices[index + 1]
      lastVertY = resVertices[index + 2]
      lastVertA = resVertices[index + 3]
      if abs(lastVertA) > EPS then
         put lastVertX, lastVertY, 1
         bStartWithLast = 1
      endif
      for vertIndex = begIdx to endIdx
         index = vertIndex * 3
         actVertX = resVertices[index + 1]
         actVertY = resVertices[index + 2]
         actVertA = resVertices[index + 3]
         if vertIndex = begIdx then
            if bStartWithLast then
               ac2gdl_spx = lastVertX
               ac2gdl_spy = lastVertY
            else
               ac2gdl_spx = actVertX
               ac2gdl_spy = actVertY
            endif
         endif
         if abs(lastVertA) > EPS then
            ac2gdl_mx = (actVertX + lastVertX) / 2
            ac2gdl_my = (actVertY + lastVertY) / 2
            ac2gdl_ratio = 1 / 2 / tan (lastVertA / 2)
            ac2gdl_cx = ac2gdl_mx - ac2gdl_ratio * (actVertY - lastVertY)   ! Arc center
            ac2gdl_cy = ac2gdl_my + ac2gdl_ratio * (actVertX - lastVertX)
            put ac2gdl_cx,   ac2gdl_cy,   900,
               0,         lastVertA,   4001
         endif
         if vertIndex > begIdx & abs(ac2gdl_spx - actVertX) < EPS & abs(ac2gdl_spy - actVertY) < EPS then
            put actVertX, actVertY, -1
            bClosed = 1
         else
            if vertIndex < endIdx | not(bStartWithLast) then
               put actVertX, actVertY, 1
            endif
         endif
         lastVertX = actVertX
         lastVertY = actVertY
         lastVertA = actVertA
      next vertIndex
      if not(bClosed) then   ! Close the polygon if it has holes
         put ac2gdl_spx, ac2gdl_spy, -1
      endif
   next contIndex
return


*

Оффлайн makcbin

  • **
  • 61
  • Репутация: +7/-0
SIP панели
« Ответ #63 : Ноября 13, 2017, 18:19:13 »
Brandashmыg, спасибо, речь шла о разном отступе для разных отрезков. Одни отрезок отступает на 50 мм, другой на 100. ResizeContour изменяет весь конур на одну величину, или я ошибаюсь?

*

Оффлайн Kuvbur

  • ^_^
  • ****
  • 370
  • Репутация: +69/-0
  • Пол: Мужской
SIP панели
« Ответ #64 : Ноября 13, 2017, 20:24:26 »
речь шла о разном отступе для разных отрезков. Одни отрезок отступает на 50 мм, другой на 100. ResizeContour изменяет весь конур на одну величину, или я ошибаюсь?
Извиняюсь, не заметил. Да, ResizeContour изменяет весь контур. Возможно,  OffsetEdge поможет. Вызвать его для каждой грани (Index of the edge to be translated (for “OffsetEdge” operation) ), подовая на вход предыдущий результат. 

*

Оффлайн МихалычЪ

  • **
  • 67
  • Репутация: +7/-0
  • Пол: Мужской
SIP панели
« Ответ #65 : Ноября 13, 2017, 22:40:26 »
Доброго времени суток.  Вроде собрал все свои труды по СИП панелям. Пользуйтесь на здоровье!
Тут отдельно библиотека с элементами. Могу скинуть еще пример проекта если кому интересно.

*

Оффлайн МихалычЪ

  • **
  • 67
  • Репутация: +7/-0
  • Пол: Мужской
SIP панели
« Ответ #66 : Ноября 13, 2017, 22:44:10 »
А Касательно переменной глубины паза и сложной конфигурации панелей вообще: такие вещи встречаются крайне редко в единичном экземпляре на 10 стандартных проектов. В этом случае проще вручную спецпанельку разрисовать, чем перегружать параметрами и узловыми точками всю систему.

*

Оффлайн МихалычЪ

  • **
  • 67
  • Репутация: +7/-0
  • Пол: Мужской
SIP панели
« Ответ #67 : Ноября 13, 2017, 23:04:25 »
https://yadi.sk/d/NxD1fFRL3PfcFq  примерчик проекта с использованием этой библиотеки

*

Оффлайн makcbin

  • **
  • 61
  • Репутация: +7/-0
SIP панели
« Ответ #68 : Ноября 14, 2017, 07:09:11 »
МихалычЪ, спасибо большое. Точно кому-то пригодятся панельки

*

Оффлайн МихалычЪ

  • **
  • 67
  • Репутация: +7/-0
  • Пол: Мужской
SIP панели
« Ответ #69 : Ноября 14, 2017, 20:59:32 »
Если кто решил разобраться в проекте, то на листах  - сборочные чертежи,  а для производства задание - в наборе издателя. Там и ПДФки и экселевские таблицы.  Все практически формируется автоматом по шаблону. на некоторые детальки,  редкие приходится размеры в окне спецификации вручную проставлять, а вот фронтонные панели - сами образмериваются.
На всякий случай пример ТЗ для производства по этому проектику.

*

Оффлайн makcbin

  • **
  • 61
  • Репутация: +7/-0
SIP панели
« Ответ #70 : Ноября 21, 2017, 18:52:29 »

Продолжение моей панельки

*

Оффлайн МихалычЪ

  • **
  • 67
  • Репутация: +7/-0
  • Пол: Мужской
SIP панели
« Ответ #71 : Ноября 21, 2017, 22:16:03 »
Да. Так конечно  получается больше степеней свободы при работе с элементом. На сложных фронтонах удобнее размещать панели. А вот как решить задачку по сопряжению панелей в разных плоскостях, для эркеров, сложных крыш и т.п. Когда боковая подрезка отлична от 90гр. ? 

*

Оффлайн BoogeyMan

  • *****
  • 503
  • Репутация: +33/-0
  • BIM & SIP
SIP панели
« Ответ #72 : Ноября 21, 2017, 23:03:45 »
Продолжение моей панельки
Вы действительно располагаете сип панели на фасадах таким образом или это только для  видео
смотрится опасно с конструктивной точки зрения

*

Оффлайн makcbin

  • **
  • 61
  • Репутация: +7/-0
SIP панели
« Ответ #73 : Ноября 22, 2017, 07:05:03 »
МихалычЪ, планирую добавить отсекающие тела и сечения. В общем, думаю над данным вопросом.
BoogeyMan, объясните, пожалуйста, конкретнее, в чем заключается "опасность"? Схема условная, для видео.

*

Оффлайн BoogeyMan

  • *****
  • 503
  • Репутация: +33/-0
  • BIM & SIP
SIP панели
« Ответ #74 : Ноября 22, 2017, 09:56:16 »
в чем заключается "опасность"?
с тем что если собрать здание таким образом оно упадет

 

Похожие темы

  Тема / Автор