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

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

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #120 : Марта 03, 2021, 08:47:55 »

Test

У меня лицензия. Я не владею программированием на столько, чтобы пытаться переделать аддон.
А в смысле пропала поддержка каркаса? Т.е. эти семейства больше работают?

Прошу прощение что не ответил сразу.
Сайт почему-то до сегодня был не доступен.

В ревите раньше была интегрирована специальная прога для каркасников , теперь она больше не поддерживается и не будет, а халявных прог нет.

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #121 : Марта 03, 2021, 09:15:52 »
То есть ты сделал жесткую привязку покрытия на основе параметра iusageid? хм... ну в принципе вариант.
Можешь, пожалуйста, прислать выдержку как в итоге выглядит настроенные парочку шаблонов из afelements.xml и в какую часть скрипта AFPlank.gsm добавил присвоения покрытия?

В шаблонах файла   
Нужно каждом материалу прописать так;
!!!!Левая сторона вертикальная
            <!-- Left side vertical -->
            <planks group="vertical" axis="y" skipaxis="1">
              <material id="[matid_left;default=@matid;type=matid]"
           zoff="[zoff_left;default=0]"
           rotangle="[rotangle_left;type=real;default=0]">
           !!!!!!!!!!!!!!!!!!!!! Устанавливает Тип Для Стойка Левая!!!!!!!!!!!!!!!!!!
         <objparam name="iUsageId">Стойка Левая</objparam>
                         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
           </material>
              <force>
                <parallel x1off="[off_center;default=mat_thickness*0.5]"></parallel>
              </force>
            </planks>
Название типа должно строго совпадать с типом из списка выпора типа.

В AFPlank.gsm;
Скрипт 3D:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
material _MAT_P
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
specPen=0
if iElemLocked then specPen=iPenLocked
if iCnc=0 or iElemModule<>"" or iCncFraming=0 then specPen=iPenNoCnc
  if specPen then
   default_pen=specPen
   pen default_pen
   r=req( "red_of_pen " + str(specPen, 1,0))
   g=req( "green_of_pen " + str(specPen, 1,0))
   b=req( "blue_of_pen " + str(specPen, 1,0))
      define material "_FrameLockedPlank_" 3,r,g,b
      mat_top=IND(MATERIAL, "_FrameLockedPlank_")
    mat_bot=mat_top
    mat_side=mat_top
   material mat_top
  endif
В скрипте параметры Вначале:
1. Создать такой же список выбора параметров.
2. В параметрах в самом начале:
 !!!!!!!!!!!!!!!!!!!!!!!!!!!Выборка Типов!!!!!!!!!!!!!!!!!!!!!!!
values "iUsageId" "", "Элемент Каркаса", "Балка",  "Брус",,,,,,,,,,,,,,
parameters iMatName=iMatName
parameters _MATy=_MATy
_MATy=iUsageId
!!!!!!!!!!!!!!!Покрытие по умолчанию!!!!!!!!!!!!!
_MAT_P=0
parameters _MAT_P=_MAT_P
!material=0
!!!!!!!!!!!!!!!!!!!!!!! Назначение покрытий !!!!!!!!!!!!!!!!!
if _MATy=""                              then     _MAT_P=_MAT_00
if _MATy="Элемент Каркаса"                 then     _MAT_P=_MAT_0
if _MATy="Балка"                         then     _MAT_P=_MAT_1
if _MATy="Брус"                          then     _MAT_P=_MAT_2
if _MATy="Вагонка"                       then     _MAT_P=_MAT_3
if _MATy="Доска"                         then     _MAT_P=_MAT_4
,,,,,,,,,,,.
и в самих параметрах создать переменные _MAT_00, _MAT_01 ...... с назначением материала.
Теперь если типы _MATy и _MAT_P будут совпадать то будет присваивается материал + MAT_01 и так далие.
если нет совпадения или отсутствовать, то MAT_00.

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #122 : Марта 03, 2021, 09:39:53 »
Хотел доьавить параметр Сечение.
Надо чтобы параметр ширина (50) и толщина (150) объединялись в один параметр (50х150) как это в эселе.
Кто знает как это осуществить на языке GDL.
Очень упростило бы создание таблиц. Использование имени не является точным параметром сечения.

*

Оффлайн Arsh

  • Век живи, ...
  • *****
  • 2838
  • Репутация: +242/-24
  • Пол: Мужской
  • Столько не живут...
ArchiFrame
« Ответ #123 : Марта 03, 2021, 09:52:02 »
В параметры добавить тип сеч. В скрипт параметров прописать: Если тип сеч.1, то  ширина 50 высота 150. Если тп сеч.2 то .... и т.д.

*

Оффлайн mr.Mikhail

  • ***
  • 200
  • Репутация: +8/-0
  • Пол: Мужской
  • tg @MikiEremiki
ArchiFrame
« Ответ #124 : Марта 03, 2021, 12:04:33 »
Хотел доьавить параметр Сечение.
Надо чтобы параметр ширина (50) и толщина (150) объединялись в один параметр (50х150) как это в эселе.
Кто знает как это осуществить на языке GDL.
Очень упростило бы создание таблиц. Использование имени не является точным параметром сечения.

Там есть такой параметр, называется iMatId.

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #125 : Марта 03, 2021, 12:05:12 »
В параметры добавить тип сеч. В скрипт параметров прописать: Если тип сеч.1, то  ширина 50 высота 150. Если тп сеч.2 то .... и т.д.
Вы не поняли.
Есть на входе два параметра, ширина и толщина (они не жёстко установлены), они меняются и могут быть любые.
Нужно иметь третий параметр Сечение) он должен означать текс из 3 параметров.
1 Ширина (например 44)
2 Разделитель (х)
3 Толщина (например 100)
В итоге должен получится текст (44х100)
В Аксели это в формулах называется Объединить.

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #126 : Марта 03, 2021, 12:28:38 »
Там есть такой параметр, называется iMatId.
Это не всегда подходит.
Так например я прописываю ID и Имя Например Кл_50х150 (Клееный брус), Имя есть имя, а сечение есть сечение, это совершенно другой параметр.
Теперь престав те что вы создаёте в пироге элемент, которые не выбирается из списка, а создается.
Скажем брусок который нельзя повернуть на ребро (увы такое там есть), и пишите толщина 150 ширина 50.
Вроде все хорошо, но в спецификации получится 2 как бы разных элемента по 1шт., а на самом деле это 1 элемент но 2шт. (сечение у них одинаковое просто один стоит на ребре другой плашмя).
Поэтому если прописать условие что тот размер который меньше то он толщина а тот что больше то ширина, объединить их в одно значение (сечение) то у вас не будет бардака в спецификациях.
Это я проходил когда писал семейство балок для Revita.

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #127 : Марта 03, 2021, 12:57:05 »
Выгладываю кому может пригодится.
Список размерного пиломатериала по госту.
Когда набивал думал поседею (шутка).
Как и куда вставить надеюсь сообразите, только дубликаты (старые) удалите и переназначить их в пирогах заново если они уже использовались.

*

Оффлайн mr.Mikhail

  • ***
  • 200
  • Репутация: +8/-0
  • Пол: Мужской
  • tg @MikiEremiki
ArchiFrame
« Ответ #128 : Марта 03, 2021, 15:14:02 »
Это не всегда подходит.
Так например я прописываю ID и Имя Например Кл_50х150 (Клееный брус), Имя есть имя, а сечение есть сечение, это совершенно другой параметр.
Теперь престав те что вы создаёте в пироге элемент, которые не выбирается из списка, а создается.
Скажем брусок который нельзя повернуть на ребро (увы такое там есть), и пишите толщина 150 ширина 50.
Вроде все хорошо, но в спецификации получится 2 как бы разных элемента по 1шт., а на самом деле это 1 элемент но 2шт. (сечение у них одинаковое просто один стоит на ребре другой плашмя).
Поэтому если прописать условие что тот размер который меньше то он толщина а тот что больше то ширина, объединить их в одно значение (сечение) то у вас не будет бардака в спецификациях.
Это я проходил когда писал семейство балок для Revita.

Ну тут уже вопрос в том как вы используете имеющиеся у Вас инструменты. У меня в iMatid только сечение, поэтому проблем как у Вас не испытываю. Все что мне нужно дополнительно решаю либо через iUsageid, либо через пользовательские свойства.

Не понял по поводу бруска, это видимо у Вас есть эта проблема потому что вы в iMatid используете не наименование сечения.

И собственно, можете добавить свой параметр и в скрипте параметров прописать логику его формирования в том же AFPlank.gsm.

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #129 : Марта 03, 2021, 16:49:32 »

Ну тут уже вопрос в том как вы используете имеющиеся у Вас инструменты. У меня в iMatid только сечение, поэтому проблем как у Вас не испытываю. Все что мне нужно дополнительно решаю либо через iUsageid, либо через пользовательские свойства.

Не понял по поводу бруска, это видимо у Вас есть эта проблема потому что вы в iMatid используете не наименование сечения.

И собственно, можете добавить свой параметр и в скрипте параметров прописать логику его формирования в том же AFPlank.gsm.
[/quote]
Вы можете попасть в такое положение когда ID не будет является сечением.
В настройках пирога пол/крыша с боковинами, есть элемент (доска, это боковины) которая создается не выборам из списка материал, а на основе трех значений блок ширина и толщина и там iMatid (ID) не выдаст вам того что нужно (сечение).
Я же хочу добиться чтобы в любом случае и всегда было правильное сечение, даже если у меня толщина намного больше чем ширина.
Толщина-50, ширина=150,             сечение 50х150. Длинна=3000
Толщина-150, ширина=50,             сечение 50х150. Длинна=3000
Блок Толщина-150, ширина=50,    сечение 50х150. Длинна=3000
У вас это будут три разных элемента по 1шт.
У меня один элемент количеством 3шт.
Я уже говорил выше что сам уже это проходил, и проблема там была решена и пропали разные касики и не удобства в сметах.
Но вы в праве ограничить себя и позволить Архифрейму загнать семя в те условия которые он вам предложил.
У нас на рука ходит версия которая не доделана, но вы можете обратится к производителю и он тогда допишет и настроит её как надо, Лично вам.









*

Оффлайн mr.Mikhail

  • ***
  • 200
  • Репутация: +8/-0
  • Пол: Мужской
  • tg @MikiEremiki
ArchiFrame
« Ответ #130 : Марта 03, 2021, 16:57:18 »
Ну тут уже вопрос в том как вы используете имеющиеся у Вас инструменты. У меня в iMatid только сечение, поэтому проблем как у Вас не испытываю. Все что мне нужно дополнительно решаю либо через iUsageid, либо через пользовательские свойства.

Не понял по поводу бруска, это видимо у Вас есть эта проблема потому что вы в iMatid используете не наименование сечения.

И собственно, можете добавить свой параметр и в скрипте параметров прописать логику его формирования в том же AFPlank.gsm.

Вы можете попасть в такое положение когда ID не будет является сечением.
В настройках пирога пол/крыша с боковинами, есть элемент (доска, это боковины) которая создается не выборам из списка материал, а на основе трех значений блок ширина и толщина и там iMatid (ID) не выдаст вам того что нужно (сечение).
Я же хочу добиться чтобы в любом случае и всегда было правильное сечение, даже если у меня толщина намного больше чем ширина.
Толщина-50, ширина=150,             сечение 50х150. Длинна=3000
Толщина-150, ширина=50,             сечение 50х150. Длинна=3000
Блок Толщина-150, ширина=50,    сечение 50х150. Длинна=3000
У вас это будут три разных элемента по 1шт.
У меня один элемент количеством 3шт.
Я уже говорил выше что сам уже это проходил, и проблема там была решена и пропали разные касики и не удобства в сметах.
Но вы в праве ограничить себя и позволить Архифрейму загнать семя в те условия которые он вам предложил.
У нас на рука ходит версия которая не доделана, но вы можете обратится к производителю и он тогда допишет и настроит её как надо, Лично вам.

Эм... я в border mat id указываю сечение зачем мне писать 150х50, если я там сразу напишу 50х150. А в толщине и ширине они будут поменяны. Покажите что вы прописываете в border mat id в настройках слоя?

P.S. Мне пока не понятна Ваша проблема, уже пару лет использую AF и не сталкивался с этой проблемой... Как я могу попасть в это положение если мы сами определяем что будет записано в iMatId?

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #131 : Марта 03, 2021, 16:59:08 »
Решил вопрос, но не до конца.
Теперь ширина всегда выводится та которая больше, а меньшая как толщина.
Как текст объединить нашёл, но для этого нужно перевести цифровую ячейку в текстовую.
Дело в том что толщина и ширина это числовое значение а нужно текстовое.
Кто знает как это сделать в GDL

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #132 : Марта 03, 2021, 17:05:01 »
Эм... я в border mat id указываю сечение зачем мне писать 150х50, если я там сразу напишу 50х150. А в толщине и ширине они будут поменяны. Покажите что вы прописываете в border mat id в настройках слоя?

P.S. Мне пока не понятна Ваша проблема, уже пару лет использую AF и не сталкивался с этой проблемой... Как я могу попасть в это положение если мы сами определяем что будет записано в iMatId?
Откройте создания пирога и выберете создать на основе Перекрытия потолок с боковинами.
Самый первый элемент создается не из списка материал.

*

Оффлайн mr.Mikhail

  • ***
  • 200
  • Репутация: +8/-0
  • Пол: Мужской
  • tg @MikiEremiki
ArchiFrame
« Ответ #133 : Марта 03, 2021, 17:07:17 »
Откройте создания пирога и выберете создать на основе Перекрытия потолок с боковинами.
Самый первый элемент создается не из списка материал.

Так я Вам о чем и толкую, что вам мешает вместо текста block - написать используемое сечение "25х100"?

*

Оффлайн Pawel37

  • ***
  • 215
  • Репутация: +3/-0
  • Пол: Мужской
ArchiFrame
« Ответ #134 : Марта 03, 2021, 17:19:28 »
Так я Вам о чем и толкую, что вам мешает вместо текста block - написать используемое сечение "25х100"?
Вы абсолютно правильно говорите.
Но я допускаю что человек всегда остается человеком и может забыть вбить или опечататься, и тогда косяки.
Вы принимаете те условия которые вам предложили.
Я хочу по мере возможного облегчить себе жизнь и обезопасить.
Вас ведь заинтересовала идея автоматического назначения типа и покрытий элементам, хотя разработчик эту функцию не доделал.

Не надо прогибаться под мир, пусть мир прогнется под вас.