MCAD Posted March 12, 2021 Report Share Posted March 12, 2021 13 минут назад, dromandon сказал: Судя по всему в той, которая ещё не вышла))) Да Quote Link to comment Share on other sites More sharing options...
Mитька Posted March 16, 2021 Report Share Posted March 16, 2021 В 13.03.2021 в 00:31, MCAD сказал: Да Это 21? Или наработки на 22? Quote Link to comment Share on other sites More sharing options...
MCAD Posted March 16, 2021 Report Share Posted March 16, 2021 8 минут назад, Mитька сказал: Это 21? Или наработки на 22? 21-я Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 12, 2021 Report Share Posted April 12, 2021 К вопросу о использовании комментариев внутри самой таблицы. Комментарии доступны в "Построителе выражений" после создания комментария и закрытия таблицы. После закрытия они появляются в "Инспекторе" и появляются "Построителе выражений". Using cell comments in the same table.dwg 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 30, 2021 Report Share Posted April 30, 2021 В 16.11.2012 в 13:34, Artem_R сказал: MCAD, а не планируется добавить в таблицы функции для работы со строками? Таблицы и так замечательные, а стали бы великолепные. Это увеличило бы возможности вот такой мелкой автоматизации. Оказывается до сих пор актуально: для тех кто не читает справку Добавлено в версии 20.1 в версии 21 ________________ 2 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted January 1 Report Share Posted January 1 исходник Фабула. Прошедший год, кроме всего прочего, запомнился тем, что многие организации наконец-то закончили этап внедрения BIM (это не мои слова). Видимо, ожидаемо получилось так, что руководство этих организация стало привлекать опытных менеджеров к решению других задач. Ну, и как обычно, в конце года, неожиданно пришла пора выпуска документации. В частности, поднялся вопрос, пронумеровать листы комплекта или как быстро подсчитать количество форматов по тому или иному разделу выполненному разными сотрудниками. Все, представленное ниже, это просто пример. В частном случае блоки, атрибуты обозначения форматов будут отличаться от тех, которыми пользуется в других организациях. Но, надеюсь, что если у Вас возникнет желание, то адаптация под Ваши задачи не займёт много времени. Подготовка шаблона таблицы. Предварительно подготовим таблицу для более удобного использования в платформе nanocad. Добавим «Именованные ячейки» в качестве переменных. H7 – 1-й Раздел H8 – 2-й Раздел H9 – 3-й Раздел H10 – 4-й Раздел H11 – 5-й Раздел H12 – 6-й Раздел В этих переменных мы будем хранить «Марку» раздела. Конечно, можно вводить эти значения непосредственно в выражение, но постараюсь показать наиболее гибкий вариант. J7 – Договор J8 - Разделитель J9 - Предприятие J10- Изделие Формирование отчёта Чертежи одной марки должны располагаться на одной линии (Object.OriginY); 1. В данном примере «Форматы» фильтруются по слою MCAD_ФОРМАТЫ; 2. В колонки «B» и «C» берём значения =rnd(Object."Position Y"/100) и rnd(Object."Position X")) 3. В колонке «С» заранее вводим =count() 4. Теперь мы можем определить, сколько блоков находится в каждом ряду. Для этого открываем диалог «Группировать и объединять» 5. Присвоение чертежам «Марки» происходит на основании индекса строки в столбце “G” как: =iff(off(0;-6)==1;1;iff(off(-1;-5)==off(0;-5);off(-1;0);off(-1;0)+1)) где off(0;-5) объединённая колонка по значению Object."Position Y". Добавляем объединение по «G» 6. Дальнейшее определение марки происходит в колонке «Q», в соответствии с индексом объедения по Object.OriginY и присвоению соответствующего значения переменных This.‘’й-Раздел’’ в виде «Именованная ячейка» как: =Select( off(0;-10)==1;This."1-й Раздел"; off(0;-10)==2;This."2-й Раздел"; off(0;-10)==3;This."3-й Раздел"; off(0;-10)==4;This."4-й Раздел"; off(0;-10)==5;This."5-й Раздел"; off(0;-10)==6;This."6-й Раздел"; TRUE;"Нет раздела") Тут off(0;-10) – колонка “G”, описанная выше; 7. Теперь в колонке “H” мы можем сформировать обозначение =This."Предприятие"+iff(This."Предприятие"=="";"";This."Разделитель")+This."Изделие"+"."+off(0;9)+" (Листы 1..."+off(0;-4)+")" 8. Теперь, когда мы определили, сколько блоков находится в каждом ряду необходимо, пронумеровать их по возрастанию параметра Object."Position X". Для этого в колонку «F» вводим выражение: =iff(off(0;-5)==1;1;iff(off(-1;-4)!=off(0;-4);1;off(-1;0)+1)). Это значит, на самом деле, очень простое действие. Если (iff) ячейка, которая находится (off) в той же строке (0) , на пять колонок влево (-5) равна «1», то пишем «1». Дальше проверяем, если координата «Y » не равна выше стоящей ячейке off(-1;-4)!=off(0;-4) , то ставим «1», если равна, то берём значение верхней ячейки off(-1;0) и прибавляем «1» 9. Определяем порядковый номер страницы в комплекте документации в колонке «М» =iff(This."Отображать номер страницы"==1;off(0;-12)+This."Начальный номер страницы"-1;"") 10. Общее количество страниц начинается с переменной заданной на форме и вычисляется как: iff(This."Отображать номер страницы"==1;row+This."Начальный номер страницы"-1;""); 11. Отображение на чертеже номеров страниц может быть отключено, переменной на форме This."Отображать номер страницы"; дополнительно в колонке «P» добавим проверку для =iff(This."Отображать номер страницы"==TRUE;"Видим";"Скрыт"). Для отображения поля номера страницы. 12. В колонки «I», «J», «K» берём атрибуты блока =Object.NAME_OF_THE_BUILDING =Object.NAMEOFTTHECOMPLEX =Object.NAME_OF_IMAGES Теперь, когда мы определили все необходимые атрибуты, осталось вернуть их значения в блок. В колонку «P»: =ctlSetValue(off(0;1);Object.SHEET_NUMBER)+ctlSetValue(off(0;-1);Object.SHEET_COUNT)+ctlsetValue(off(0;10);Object.DESIGNATION)+ctlsetValue(off(0;11);Object."Выбор1")+ctlSetValue(off(0;8);Object.N_SHEET)+"ctlSetValue" 13. Вид фрагмента основной надписи в первом ряду. 14. Теперь при изменении «Именованной ячейки» H7 (1-й Раздел) или при добавлении, например трёх форматов справа от указанного «Обозначение» пересчитается и листы будут соответствовать нужным значениям 15. Все форматы имеют разный размер, но нам нужно привести их к формату А4. В колонке отчёта «L» вводим: =Select( subLeft(Object."Выбор";9)=="Формат А4";1*iff(subString(Object."Выбор"+" ";10;1)=="x";subString(Object."Выбор";11;1);1); subLeft(Object."Выбор";9)=="Формат А3";2*iff(subString(Object."Выбор"+" ";10;1)=="x";subString(Object."Выбор";11;1);1); subLeft(Object."Выбор";9)=="Формат А2";4*iff(subString(Object."Выбор"+" ";10;1)=="x";subString(Object."Выбор";11;1);1); subLeft(Object."Выбор";9)=="Формат А1";8*iff(subString(Object."Выбор"+" ";10;1)=="x";subString(Object."Выбор";11;1);1); subLeft(Object."Выбор";9)=="Формат А0";16*iff(subString(Object."Выбор"+" ";10;1)=="x";subString(Object."Выбор";11;1);1); TRUE;0) Функция subLeft вернёт только обозначение формата, без кратности Для А3, нужно умножить это значение на 2, для А2 на 4, для А1 на 8 и для А0 на 16. Теперь нужно проверить, если в Object.«Выбор» есть «х» То взять 11-символ из Object.«Выбор» и использовать его в качестве множителя. 16. Добавляем «Итог отчёта» И в колонке: «K» ="Всего листов: "+off(-2;-10) «L» ="Форматов кратно А4: "+" "+summ(section(-1))+" шт." «N» =off(0;-2) Итог Если вы дочитали до этого места то, наверное, уже поняли, что ничего сложного в этом алгоритме нет. Это не программирование как таковое. Вам не нужно ни определять типы данных, ни создавать сложные функции и процедуры. Ничего такого!!! Вам просто нужно мысленно представить каким путём вы достигаете поставленной задачи при обычном проектировании и последовательно реализовать этот алгоритм в виде отчёта. Файл примера можно посмотреть тут 3 Quote Link to comment Share on other sites More sharing options...
MCAD Posted January 10 Report Share Posted January 10 Типовой вопрос: Как значение одного объекта (например блока) учесть в разных колонках отчёта. На чертеже размещены блоки, представляющие из себя «Перекрытия» определенной «Серии». Блоки обладают двумя параметрами «Выбора», «Марка» и «Этаж». Нам нужно подсчитать, сколько блоков, определенной «Марки» размещены по этажам. В примере условно рассмотрено пять этажей и «Подвал», но этот метод позволит Вам расширить возможности отчёта. При необходимости, конечно. 00:14 Открываем заготовку отчета и в меню «Разделы» выбираем «Вставить раздел отчета» 00:22 Нажимаем на «Выбрать исходные объекты» указываем, что нам нужны блоки и, в качестве дополнительного фильтра, задаем «Имя» - «плиты пустотные» 00:36 Последовательно выбирая из контекстного меню , назначаем колонка свойства из атрибутов блока. Колонка «В» - Object."СЕРИЯ" , клонка «С» - Object."МАРКА". В колонке «J» - пишем count(). 01:10 В «Итоге» отчёта вставляем из контекстного меню «Сумма» summ(section(-1)) 01:15 Нажимаем «Группировать и объединять». Перетаскиваем из левой части обозначение колонки «В» и назначаем «Объединять» и «Сортировать по возрастанию». Теперь все ячейки, с одинаковым обозначением «Серии» будут объединены. 01:25 Назначаем для колонки «С» группировку по «Марке». Теперь все строки, объединённые по серии, сгруппированы по «Марке». В колонке «J» автоматически подсчитывается общее количество блоков соответствующей «Марки». 01:36 Временно убираем «Группировку» по «С», чтобы более наглядно продемонстрировать алгоритм подсчёта. 01:40 В колонке «D» вставляем свойство блока (Выбор) «Этаж». В данном случае мы выбрали его из контекстного меню. 01:55 Открываем «Построитель выражений». В этой колонке нам нужно подсчитать, сколько блоков имеют параметр «Этаж» значение «Подвал». Пишем условие, ели значение равно «Подвал», то «1»,если иное значение, то «0» iff(Object."Этаж"=="Подвал";1;0) 02:20 Возвращаем группировку по «С» и видим, что пока мы не получили нужный результат. В колонке появились только значения «0» и «1». 02:28. Снова заходим в «Построитель выражений» и суммируем все значение в сгруппированной строке отчёта. =sum(iff(Object."Этаж"=="Подвал";1;0)) 02:39 Повторяем данное условие для каждого этажа, редактируя значение аргумента Object."Этаж" в зависимости от текущей колонки. 03:30 В данной постановке задача уже решена. Мы имеем возможность подсчитать все «Плиты перекрытия» по этажам, но отображаются все колонки, хотя пока у нас нет «Плит перекрытия» для четвёртого и пятого этажа. Так как мы делаем «универсальный» отчёт, то желательно автоматически скрывать «нулевые» колонки. 03:32 Для этого в «Итоге» отчёта, суммируем значения внутри секции отчёта для колонки «D». 03:33 Открываем «Построитель выражений» и Задаём условие, что если «Итог» колонки равен «0», то и ширина колонки равна «0», иначе назначаем «8» мм. =ctlSetColumnWidth( iff(summ(section(-1))==0;0;8)) 04:02 «Размножаем» данное выражение по колонкам «этажей». Так как ролик делался практически одним дублем и без последующей обработки, то прошу отнестись с пониманием, что иногда приходилось делать откаты ctrl+Z, но это никак не влияет на работу отчёта. 04:32 Теперь колонки с «нулевыми» значениями в «Итоге» отчёта имеют нулевую ширину. 04:45 теперь отчёт практически полностью готов. Но иногда проще и нагляднее, кроме обозначения «Марки», видеть на чертеже «Позицию» вместе длинным обозначением «Марки». Так как это «временный» атрибут, необходимы только в процессе работы и проверки чертежа, дадим проектировщику возможность удобного переключения для его отображения или скрытия. 04:45 Заходим в любую «Скрытую ячейку» и назначаем «Комментарий». В нашем случае это будет ячейка «О2» - «Show Pos» 04:58 В ячейке «N» строки отчёта вводим условие, что если значение в «Комментированной ячейке» равно «1», То пишем «Поз.» + row если нет то «» (пустое значение). =iff(This."Show Pos"==1;"Поз. "+ row;"") 05:41 Теперь нам нужно передать это значение в атрибут блока Object.POSITION. ctlSetValue(off(0;-1);Object.POSITION) Заодно наступим на «грабли» и, получив по лбу при проверке работы отчёта, быстро исправим позже 06:35. 06:18 Проверяем работу отчёта , меняя значение комментированной ячейки. Как мы видим, что у некоторых блоков не меняется значение атрибута POSITION. 06:35 Возвращаемся в редактор и добавляем, =sum(ctlSetValue(off(0;-1);Object.POSITION)) . Теперь значение должно передаваться во все блоки. 07:13 Сохраняем таблицу в базу данных, создав, при необходимости, новую папку в нужном разделе. 07:32 Теперь этот отчёт можно использовать во всех чертежах, где при оформлении документации используются данные блоки «плиты пустотные» 2 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted June 1 Report Share Posted June 1 В 31.05.2023 в 00:07, sokave сказал: не понимаю, как автонумерация страниц у вас сделана а легче не стало я вообще не понимаю ничерта, магия какая то запредельного уровня ммм, мне кажется китайский язык проще Пример нумерации объектов по простому алгоритму. Разделы сортируются сверху вниз по уменьшению координаты Y. Номера в разделах по увеличению координаты X 1. Подготовка данных 1.1. Объектами, которые будут использоваться в качестве примера, будут «Универсальные выноски» 1.2. Вставим в чертеж универсальную выноску с произвольным набором значений 1.3. Создадим массив из выносок, например, пять по горизонтали и одиннадцать по вертикали. 1.4. Примем, в качестве дополнительного условия, что все выноски для реализации задачи будут лежать на определенном слое. 2. Подготовительные работы 2.1. Вставляем в чертеж обычную таблицу, состоящую из двух строк 2.2. Так как нам нужно показать формирование «Обозначения» 2.3. Примем, что в первой строке будет формироваться постоянная часть (условно), такая как производитель, номер договора или любимы цвет вашей мамы 2.4. Вторая строка будет содержать «вертикальную» часть обозначения , которая будет формировать индексы разделов проекта 2.5. Для возможности более простого использования значений ячейки, как внутри таблицы, так и через «Инспектор» платформы задаём осмысленные комментарии, в свойствах ячеек. 2.6. Например, все ячейки второй строки имеют «комментарий» Раздел с индексом от 1 (колонка А) до 12 (колонка L) . 2.7. Абсолютно не принципиально, что все данные ячейки должны быть в одной строке. Это может быть несколько строк, или, если у Вас есть, например СПДС GraphiCS, то вы можете назначать переменные на форме. 3. Создание отчёта 3.1. Добавляем «Раздел отчёта» 3.2. Нажимаем на пиктограмму «Выбрать исходные объекты» В качестве источника данных выбираем «Универсальная выноска» и добавляем условие нахождения на слое «Test Leader» 3.3. В колонке «B» отчеты назначаем свойство выноски Object.OriginY, выбрав, например, из контекстного меню. 3.4. В колонке «С» назначаем Object.OriginX, а для колонки «D» считаем значение count() – количество. 3.5. Собственно на этом, этап получения исходных данных отчёта с чертежа закончен. Мы получили все необходимые данные и теперь нужно правильно расположить строки отчета и определить количество объектов на определённом уровне. 4. Формирование данных отчёта 4.1. Нажимаем пиктограмму «Группировать и объединять» 4.2. Перетаскиваем колонку «В» из правой части и указываем «Объединять» и сортировать по убыванию 4.3. Как видно на рисунке, строки с координатами «Y» объединились и отсортировались по убыванию 4.4. Добавим в объединение колонку «D» и последовательно отсортируем колонку «С» по возрастанию 4.5. Теперь мы получили количество объектов (универсальных выносок) в каждой строке, а внутри поддиапазона объектов с одинаковой координатой «Y» выноски отсортированы по координате «Х» 5. Определение значений для разделов и порядковых номеров объектов (универсальных выносок) внутри разделов 5.1. Теперь нужно определить порядковый номер «Раздела» для дальнейшего использования 5.1.1. Для упрощения, наглядности и простоты понимания в первую очередь проверяем, что если это именно третья строка в таблице (не в отчёте) то сразу назначаем номер 1 5.1.2. Теперь, если в колонке «В» значение в верхней строке равно значению в текущей строке off(0;-3)==off(-1;-3), то пишем значение из строки на одну выше off(-1;0), если условие не выполняется, то берём верхнюю строку и прибавляем «1» off(-1;0)+1) 5.1.3. Для наглядности в «Группировке и объединении» добавляем в «Объединение» колонку «Е» 5.2. Так как мы приняли, что значение разделов будет браться со второй строки данных формироваться в порядке следования объектов (универсальных выносок) по убыванию, то открываем «Построитель выражений» в колонке «А» отчёта и пишем выражение Select( off(0;4)==1;A2; off(0;4)==2;B2; off(0;4)==3;C2; off(0;4)==4;D2; off(0;4)==5;E2; off(0;4)==6;F2; off(0;4)==7;G2; off(0;4)==8;H2; off(0;4)==9;I2; off(0;4)==10;J2; off(0;4)==11;K2; off(0;4)==12;L2; TRUE;"Б/Ч") Последовательно проверяем значение в колонке «Е», и при выполнении условия берём значение из соответствующей ячейки с названием раздела. В нашем случае оно совпадает с индексом ячейки, но конечно, оно должно соответствовать значению комплекта КД 5.3. Для определения последовательности номера внутри раздела вычисляем 5.3.1. Для строки таблицы «3» назначаем «1» 5.3.2. Далее проверяем, что если мы находимся в том же разделе off(0;-1)==off(-1;-1), то берём значение верхней строки и прибавляем 1 off(-1;0)+1, иначе начинаем новую нумерацию. В нашем случае это «1», но можно, начать с нужного номера 5.4. Заранее предугадать пожелание требований в той или иной организации мв никогда не сможем, но постараемся. Вполне вероятно, что «номер документа» должен содержать три знака. Например 001..099. или кроме обозначение раздела еще и числовой обозначенние. Для этого в колонке «G» пишем iff(off(0;-2)<10;"00"+str(off(0;-2));"0"+str(off(0;-2)))+"."+iff(off(0;-1)<10;"00"+str(off(0;-1));"0"+str(off(0;-1))) На данном этапе мы закончим с арифметикой, так как все разделы определены, и порядковые номера объектов вычислены 6. Формирование обозначений 6.1. «Универсальная выноска», выбранная нами в качестве примера, может иметь несколько строк. На самом деле может быть любой объект, например динамический блок с исполнениями, «Универсальный маркер», «Параметрический объект базы данных» или, например, формат основной надписи. Поэтому возникает необходимость формирования различных обозначений в зависимости от пожеланий пользователя 6.2. Для наглядности в колонке отчета «А» дополним наше выражение =A1+"."+B1+"."+ Select( off(0;4)==1;A2; off(0;4)==2;B2; off(0;4)==3;C2; off(0;4)==4;D2; off(0;4)==5;E2; off(0;4)==6;F2; off(0;4)==7;G2; off(0;4)==8;H2; off(0;4)==9;I2; off(0;4)==10;J2; off(0;4)==11;K2; off(0;4)==12;L2; TRUE;"Б/Ч")+ "-"+off(0;6) Например, для первой строки мы получим MCAD.АБВГД.A2-001.001 , для последней MCAD.АБВГД.K2-011.005 . Мы задаём только правила формирования текстовой строки, но значения самой строки будут меняться в зависимости от того, что будет внесено в соответствующие ячейки таблицы, поля формы или отредактировано в инспекторе. 6.3. В колонках «H», «I» и «K» можно просто потренироваться складывать значение текстовой строки. Например ="Уровень: "+off(0;-3)+"(Раздел-"+off(0;1)+"); №"+str(off(0;-2)) =Select( off(0;-4)==1;A2; off(0;-4)==2;B2; off(0;-4)==3;C2; off(0;-4)==4;D2; off(0;-4)==5;E2; off(0;-4)==6;F2; off(0;-4)==7;G2; off(0;-4)==8;H2; off(0;-4)==9;I2; off(0;-4)==10;J2; off(0;-4)==11;K2; off(0;-4)==12;L2; TRUE;"Б/Ч") ="Лист № "+off(0;-5)+ " из "+ off(0;-7) 7. Возвращаем вычисленные значения в объекты (Универсальные выноски) Вся это «красивая – красота» без проблем может быть построена в сторонней программе и, без сомнения будет гораздо более функциональна. Например, в Excel, Bitrix, Microsoft Project вы легко можете «построить» график по результатам, показать высокому начальству в презентации и, наверное, удивить своих коллег. Все это мы делали для того что бы: Вернуть полученные значения в наш объект; Иметь возможность динамического обновления при добавлении, удалении, перемещении объектов; Производить с вычисления с любыми данными, полученными с объекта. Например подсчитать кол-во форматов кратно А4, для раздела проекта, для конкретного исполнителя или что-о еще. 7.1. Для возврата вычисленного значения используем функцию ctlSetValue (;) Говоря простыми словами, мы берём значение из off(0;-10) указанной (-10) ячейки текущей строки (0) 7.2. Перед тем, как переходить к следующему пункту отключите обновление текущего отчета 8. Управление отображением данных в объекте Ничего нового или оригинального, в этом пункте, сказать не получиться. Просто для демонстрации возможностей и гибкости отчёта, в качестве примера поменяем значения первой и второй выноски местами. 8.1. Вводим в ячейку «К1» значение «1» 8.2. Еще раз открываем ячейку отчёта в колонке «К» в построителе выражений. Если мы, например, хотим просто поменять местами значения в первой и второй строки, то редактируем выражение Если «К1» ==1 то пишем в свойство первой строки Object.McPropNoteString0 значения из колонки «А» off(0;-1), в противном случае берём из колонки «Н» off(0;-3) . Для второй строки условия точно такие же только «К1»!=1 и, соответственно, передаётся Object.McPropNoteString1 8.3. Следует указать, что указывать адрес ячейки можно не только по имени ячейки, а ссылаться на неё как на переменную (комментарии). 8.4 Формула выглядит так: 1.1. iff(This."Показать строку ТРИ"==1;off(0;-1);off(0;1)) 9. Заключение В этом примере рассмотрен универсальный метод получения условного обозначения на основании данных таблицы и координат, полученных с объекта. Отчёты умеют работать со всем объектами, у которых есть атрибутивная информация. Например с динамическими блоками. Пример реализации работы с Форматами – выполненными в виде блоков можно посмотреть здесь Сортировка и нумерация.dwg Сортировка и нумерация выносок. Управление отображением.pdf 1 2 Quote Link to comment Share on other sites More sharing options...
Mитька Posted June 6 Report Share Posted June 6 (edited) Ой, мама... Во что же за 10 лет превратилась "Простейшая автоматизация!.. Edited June 6 by Mитька 2 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted August 23 Report Share Posted August 23 Вопрос по мотивам темы "Можно ли извлечь в отчете данные о геометрическом положении строительной оси?" Цитата Просуммировать значение атрибутов блока, находящихся на одной линии и записать значение в крайнем правом блоке. Автоматически отслеживать изменение значений атрибутов и количества блоков. Видимый признак блока с результатом вычислений. Суммирование чисел в строке rev000.dwg 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted September 11 Report Share Posted September 11 Получение геометрии с чертежа и подсчёт однотипных объектов с разными свойствами. Шаблон "Позиции" ищет все "Универсальные выноски ", расположенные на слое "Позиция фасонки" После размещения шаблона на чертеже, нужно назначить марку и номер. Автоматически происходит поиск всех выносок с заданными критериями в первой строке. Остается только указать на замкнутый контур полилинии. Если площадь состоит из нескольких контуров, то нужно последовательно их указать 01:07. Если во второй строке содержится число, например 150 шт 01:32 , то считается, что данных элементов (фасонок) на чертеже 150 и они участвуют в расчете. 02:31 текст под обозначением позиции можно скрыть. Шаблон таблицы фасонки.mcdi Отчёт по фасонкам.dwg 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 11 Report Share Posted September 11 В продолжение Спойлер или только для булевых работает? Quote Link to comment Share on other sites More sharing options...
MCAD Posted September 12 Report Share Posted September 12 8 часов назад, doctorraz сказал: В продолжение Если ты про то, что вытащить список из кода, то нет. Если нужен общий, динамически обновляющийся список для форм всех типов объектов, то "Редактор коллекций" отреставрировали давно. Переключалка маскировки (1).dwg 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.