Перейти к содержанию

MCAD

Дилеры
  • Публикаций

    1 321
  • Зарегистрирован

  • Посещение

  • Победитель дней

    124

Сообщения, опубликованные MCAD


  1. 5 часов назад, Mитька сказал:

    Кстати, это нормально, что любой шаблон отчёта при выборке параметрических объектов (с примитивами такого нет) по области (с набором тоже не повторяется) не видит объекты, у которых Z не строго 0?

    Видимо я что-то не понял. 20.1 (в шестом тоже проверял)

    z не равно 0.dwg


  2. В ‎23‎.‎06‎.‎2020 в 14:02, Mитька сказал:

    Пример такой механики я бы поглядел с удовольствием. :wub:

    Ну вот, кажется, наглядный пример. Легенда и тело документа есть под видео.

     

    Нужно:

    • Разбить строку по символу «×»;

    • Отсортировать по возрастанию, в каждом поддиапазоне;

    • Автоматически проставить позиции; • Определить количество одинаковых значений;

    • Сформировать текстовую строку;

    • Вывести на чертёж;

    Спойлер

    00:04 Открываем таблицу в «Редакторе таблиц». В таблице имеется форма для интерактивного взаимодействия при создании отчёта с обратной связью с чертежом

    00:15 Вставляем раздел отчёта. В качестве источника данных выбираем «Позиционные выноски», расположенные на слое «Example». В столбце «А» отчёту будет вычисляться номер «Позиции». Для этого пишем выражение =row-I$15, где ячейка «I$15=row». В столбце «В» задаём значение первой строки «позиционной выноски» =Object.String1

    00:58 Так как нам нужно будет разделить содержимое =Object.String1 по символу «×», которого не т на клавиатуре, заходим в «спец. Символы» вставляем это символ в ячейки и вырезаем его, тем самым копируя его в «буфер обмена»

    01:05 В ячейке «С» строки отчёта пишем функцию subSplit , в качестве первого аргумента ссылаемся на ячейку off(0;-1), в качестве разделителя строки пишем "×", и 1 - первая группа символов. =subSplit(off(0;-1) ;"×";1). Примечание: в качестве первого аргумента можно использовать «Object.String1» или непосредственный адрес «В16». Но лучше использовать «относительный» адрес ячейки.

    01:39 Для ячеек отчёта «D» и «E» пишем =subSplit(off(0;-2) ;"×";2) и =subSplit(off(0;-3) ;"×";3) соответственно.

    02:07 В ячейке «F» перемножаем полученные в столбцах «C», «D» и «E» значения, вычисляя «объём»

    02:26 В ячейке «G» определяем, что должно должна содержать вторая строка «Позиционной выноски». Мы хотим вывести туда позицию (столбец «А» отчёта), толщину (столбец «Е» отчёта) и суммарное количество данных записей на чертеже (count()). Сложим все вместе: ="Поз."+off(0;-6)+"(S="+off(0;-2)+"мм, "+count()+"шт.)". В «кавычках» просто текстовые константы, которые будут добавляться в нужное место строки

    02:54 Теперь нам нужно просто передать вычисленное в столбце «G» значение во вторую строку «позиционной выноски» =sum(ctlsetValue(off(0;-1);Object.String2)). Функция ctlsetValue в качестве первого аргумента принимает значение «ЧТО передавать» (off(0;-1)), а второй аргумент «КУДА передавать» (Object.String2)

    03:34 После закрытия диалога «Редактора таблиц» мы видим, что у четырёх «позиционных выносок», расположенных на слое «Example», появились значения во второй строке, соответствующие вычисленным в отчёте.

    03:37 При переносе «Позиционных выносок» на разные слои вторая строка выносок, попавших на слой «Example» автоматически пересчитывается.

    04:48 Теперь мы должны найти одинаковые «позиционные выноски». Заходим в диалог «Группировка и объединение» и создаём правила для «Объединения» , «Группировки» и «Сортировки». Задаём объединение по "С" и "D" и группировку по "Е". Теперь функция count() в колонке «G» считает нам количество сгруппированных строк. Например: Поз.2 (S=2мм, 3шт.)

    04:59 Теперь расчётные данные предаются в объект. Но, при изменении условия выборки, ничего не меняется в уже установленных объектах. Так как при изменении слоя они автоматически пропадают из выборки и, соответственно, из отчёта. 05:11 Мы можем отредактировать «позиционную выноску» через диалог или через свойства платформы, но для полного счастья нам хотелось бы добиться полной автоматизации.

    05:15 Заходим в диалог «Редактирование таблицы» и создаём новый отчёт. Нажимаем «Выбрать исходные объекты» и, Указав «Позиционную выноску», добавляем условие, что выбор по все слоям кроме «Example».

    05:57 В любой столбец нового отчёта, кроме «А», вставляем =sum(ctlsetValue(off(0;-1);Object.String2)). Теперь, при переносе «Позиционной выноски» со слоя «Example» на любой другой слой, значение второй строки выноски будет «обнуляться» 06:20 Группируем отчёт по столбцу «А»

    06:40 Проверяем работу

    07:20 Воспользуемся созданным отчётом, как прототипом для работы с абсолютно другим объектом.

    07:27 Для этого нам нужно поменять источник данных для отчёта на «Параметрический объект»

    07:41 Изменить источник строк столбца «В» на «=Object.sPartName» и целевой параметр в столбце «Н» на =sum(ctlsetValue(off(0;-1);Object.sPoz)).

    08:22 Так как слово «Поз.» уже присутствует в параметрическом объекте, мы легко можем модифицировать строку в ячейке «G» - просто удалив “Поз. “+

    09:07 Редактируем "источник данных" и "строк" второго отчёта в таблице.

    Разбор строки subSplit и ctlSetValue.dwg

    • Like 1
    • Thanks 2

  3. 5 минут назад, Mитька сказал:

    Я скорее, просто взаимосвязь "таблица" ---> "параметрика" ---> "графика".

    Жаль. Это основное преимущество нашего ПО.

    Там где-то  идет вебинар по 20.1

    Ветка 33хх теперь из таблиц можно управлять объектами (СПДС) в чертеже


  4. 18 минут назад, Mитька сказал:

    Наше дело простое...

    у меня тем более ничего сложного не может быть. Просто значит технологично в производстве и надежно в работе

    Выравние uText в зависимости от угла вставки.mcd


  5. 11 минут назад, Mитька сказал:

    Согласен

    Подозреваю, что-то похожее

    добавлено через 4 минут
    11 минут назад, Mитька сказал:

    А это вообще ненужная операция, текст ведь УЖЕ внутри скрипта...

    Когда как и не всегда горизонтально

    UText(mp+oX+oY*(B/2+15),iff(angleTwoPi(oX,gX)>90;iff(angleTwoPi(oX,gX)>270;0;DegToRad(180))),iff(rCheck==1;hText*rSymScl/rScl;hText),1,-10.0000,"%%U"+sText+iff(rCheck3!=1;("A="+A);""),iff(angleTwoPi(oX,gX)>90;iff(angleTwoPi(oX,gX)>270;0,2;2,1));

     


  6. 2 часа назад, AlExTs сказал:

    Выноска - это ведь такой же объект БД. Или я ошибаюсь?

    Выноска это не объект базы. В скрипте СПДС нет возможности получить  баунд текста и, тем более из "исполнения" передать его в скрипт как параметр вернуть назад в "исполнение".

    добавлено через 2 минуты
    46 минут назад, Mитька сказал:

    хитрый способ разложить текст на буквы

    Шрифты все разные по ширине


  7. 1 минуту назад, dromandon сказал:

    по-идее, решением данной задачи, должна быть функция, которая определяла бы количество символом в текстовой строке. Я такой, к сожалению, не встречал(

    у каждого символа Своя ширина "знакоместа". Это не решит проблему


  8.  

    1 час назад, Mитька сказал:

    Да, сделать не особо долго (хотя затык с круговым вращением линии-выноски, полагаю, будет), но мож у кого готовый есть и подогнанный под настройки оформления?

    "Шаблон объекта" почему не сделать? 


  9. 2 часа назад, Mитька сказал:

    Рискну предположить, что ответ на вопрос ровно тот же, что и когда вы задавали его для СПДС 6,7,8 и 9.

    Неприоритетный вопрос.

    Еще раз про Зеркало. 

    Это "Стандартный объект". Не картинка, не текст а именно один объект в разных видах. Понятия "Зеркальное исполнение" для стандартных деталей у mechanics нет. 

    2102630502_.thumb.jpg.c3dd3533d80a9b02486df00167a4b10c.jpg 

    Картинка (наверное) старше чем нанокад. 

    Для текстов есть маркеры, группы, шаблоны. Текст на для "стандартных объектов". 


  10. 1 час назад, Иван1985 сказал:

    то таблицы будут уже открываться некорректно и файл считай испорчен для всех версий.

    Подробнее можно? С примером файла

    1 час назад, Иван1985 сказал:

    Как уменьшить?

    Тут решение

    • Like 1

  11. 2 часа назад, AlenaBaku сказал:

    Setup.exe [2020.05.19 09:30:22]: MsiInstallProduct returned 1603
    Setup.exe [2020.05.19 09:30:22]: Произошел критический сбой.
    Setup.exe [2020.05.19 09:30:26]: Install() failed. Error(1603) 'В процессе установки произошла неисправимая ошибка.'
    Setup.exe [2020.05.19 09:30:26]: Can't read email address from ini file.

    https://support.microsoft.com/ru-ru/help/834484/you-receive-an-error-1603-a-fatal-error-occurred-during-installation

    Помогает


  12. 17 минут назад, A.Kudrjashov сказал:

    А команда GSCALE задает "Масштаб оформления",

     

    Насколько я помню, команда задает значение для "текущего" масштаба. Могу ошибаться. 

    img-2020-05-19-10-44-59.png.dc438e8b72ad841b0afca2eb4f18985f.pngimg-2020-05-19-10-44-30.png.1834f06caca6389a46a35c456ba6ecf3.png

     

     

    За ссылку извиняюсь, там действительно нужны права... 

    Вот тут, надеюсь, будет доступно. https://habr.com/ru/company/nanosoft/blog/279537/

    Для nanoCAD 5.1 Settings.xml лежит тут: C:\ProgramData\Nanosoft\nanoCAD 5.1\DataRO\ru-RU\settings.xml

    • Like 1

  13. 15 часов назад, ПГС-Проект сказал:

    Как добавить в список Масштаб объектов масштаб 8:1?

    Про список уже много раз писали, например тут: "Как создать пользовательский масштаб символов?"

    если Вам просто нужно вставить в нужном масштабе:

    Цитата

    Команда: GSCALE

    gscale - Масштаб элементов оформления
    Укажите масштаб <1:1>: 8:1

     

    • Like 1

  14. Там все очень серьёзно закручено:

    Уберите запятую с конце списка Changeable

    img-2020-05-18-11-29-16.png.2252a42a67a99900d759e92a2cf6ea70.png

     

    Если вы хотите сделать вид "Упрощенный" - доступный в контекстном меню, то его нужно "отметить " в мастере" объектов

    img-2020-05-18-11-29-56.png.74762649501c9cdabc312fbfbe48b0a5.png

     

    Тем не менее это не дает ответа на вопрос, почему на разных компьютерах  разное поведение объектов :-( 


  15. 23 минуты назад, Mитька сказал:

    Не понимаю формулировку.

    В скрипте объекта есть "примитивы" (я так думаю по названию) , свойства которых доступрны для редактирования в "Испекторе" платформы. В тех "Объектах" которые идут в поставке СПДС я таких не встречал.


  16. 5 минут назад, Mитька сказал:

    1. Я не знаю, как это делать из скрипта.

    И тем не менее, 

    Есть какие-то переменные, которые торчат наружу.

    image.png.f1fad5b850df0d45cebaf8ed12618f89.png

     


  17. 2 часа назад, Mитька сказал:

    одни - модифицированные под себя, вторые

    Может в самом объекте "Штриховая" задана? Оба объекта доступны в базе компьютеров (1)и (2) ?

    img-2020-05-18-08-39-45.png.b3845b25451aa3dfa88bb200f5511330.png

×
×
  • Создать...