Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Открытый проект XDTOOLS - создание свободных инструментов для XData

Тема в разделе "Autodesk", создана пользователем АлексЮстасу, 4 окт 2021.

  1. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    В продолжение идеи удобного использования XData для придания любым объектам AutoCAD нужных дополнительных описательных характеристик. См. тему Собрать коллекцию программ для XData.

    Проект назвал XDTOOLS - создать 10-12 программ на Lisp, обеспечивающих основные действия с XData.
    Создание описаний нужных наборов характеристик, их изменения, добавление их к графическим элементам, просмотр/редактирование значений, выбор, экспорт. И т.п.
    - Программы должны быть безопасными, т.е. не нарушать установленные в документации лимиты для данных в XData, не препятствовать др. действиям в AutoCAD.
    - Программы должны быть полноценными, т.е. полно выполнять свои задачи. А так же действовать для любых примитивов AutoCAD.
    - Программы должны быть универсальными, т.к. решать задачи в общем виде - для любых XData.
    - Программы должны быть удобными для пользователей.

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

    Присоединяйтесь! Задачи не сложные, не требуют изысканного высокопрофессионального программирования.
    Имена и контакты авторов станут известными в международном сообществе AutoCAD. :)

    Например, оч. неопытный программист смог сделать получение статистики XData в файле или для выбранных объектов - XDTOOLS_STAT.lsp.
    (Функцию поиска одноименных XData с различным составом данных написал опытный).
    Можно критиковать. :)

    ---------
    XDTOOLS-...zip - все 20 команд проекта в последних версиях. Там же палитра команд.
     

    Вложения:

    #1
    Последнее редактирование: 16 июн 2023
    TulGeo нравится это.
  2. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Например, есть ключевая задача - создание и изменение описаний XData: переименовывать Apps, создавать новые описания Apps, менять состав полей их данных, порядок следования полей, тип полей.
    Для этого можно воспользоваться любезно выложенным решением Lee Mac для двух зависимых списков - http://www.lee-mac.com/listboxsync.html.
    В левой части, допустим, список имеющихся Apps. В правой - список полей данных выбранного Apps.
    Добавить кнопки действий: добавления App, удаления App, перемещения полей в списке, удаления их, добавления. При двойном нажатии, допустим, доступ к редактированию названия App или к замене типа данных поля.
    И т.п.
     
    #2
  3. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Например, программа для проверки на возможные проблемы с XData - из-за их внутренних ограничений и действий пользователей - XDTOOLS_CHECK.lsp.
     

    Вложения:

    #3
  4. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Например, программа для просмотра/ввода/редактирования содержания XData - XDTOOLS_VEDIT.lsp.
     

    Вложения:

    #4
  5. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Например, программа для добавления XData к объектам - XDTOOLS_ADD.lsp.
     

    Вложения:

    • XDTOOLS_ADD.lsp
      Размер файла:
      46,3 КБ
      Просмотров:
      5
    • XDTOOLS_ADD.png
      XDTOOLS_ADD.png
      Размер файла:
      29,2 КБ
      Просмотров:
      20
    #5
  6. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Например, ключевая для использования XData программа просмотра-редактирования определений XData - XDTOOLS_MDEFINE.lsp.

    Улучшенные и подправленные версии XDTOOLS_VEDIT.lsp и XDTOOLS_ADD.lsp.
     

    Вложения:

    #6
  7. Павел55214

    Форумчанин

    Регистрация:
    19 ноя 2013
    Сообщения:
    218
    Симпатии:
    395
    Адрес:
    г. Омск
    А какой практический смысл использования XData, если можно на примере?
     
    #7
  8. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    XData - способ добавления к любым графическим элементам описательной, дополнительной, неграфической информации. Текстовой и/или числовой. Лишь бы меньше 16К.
    И XData обладают двумя принципиальнейшими преимуществами перед всеми другими способами добавления описательных данных:
    1. присоединимы к графическим элементам любых типов (кроме Viewport),
    2. одинаково доступны вообще во всех AutoCAD.

    Например, чертите полилинию, и добавляете к ней XData, где записано, что это ЛЭП (тропа, откос, граница растительности или т.п.), у нее число проводов такое-то, напряжение такое-то и пр. При этом все в dwg может быть в 0 слое, черным цветом, одной толщиной и пр. Но ЛЭП и пр. можно будет найти по XData.
    Или получаете кадастровые данные, в которых ко всем графическим элементам добавлена соответствующая кадастровая информация.
    Или захотите слить данные из разных dwg, но перед этим к графэлементам файлов присоедините XData, где записаны названия файлов. Или имена их создателей. И будете знать что откуда или от кого.
    И т.п. - как необходимость или удобство продиктуют.

    О полезности описательных данных хорошо знают работающие в AutoCAD Map 3D - в нем есть аналог XData, но немного получше, Object Data. И знают работающие в ГИС - в них без описательных данных вообще ничего не делается.
    Есть аналог еще мощнее в Civil, Architecture, MEP - Property Sets.
    Electrical вообще весь завязан на XData. Mechanical, кажется, тоже использует - могу соврать.
    Но и в Revit, как понимаю, без описательных, дополнительных данных совсем не обходится. Краем проходило, что при экспорте в dwg из Revit часть данных передается в XData.
     
    #8
    Последнее редактирование: 7 янв 2022
    Steinar, flareon и Qvinto нравится это.
  9. Павел55214

    Форумчанин

    Регистрация:
    19 ноя 2013
    Сообщения:
    218
    Симпатии:
    395
    Адрес:
    г. Омск
    Ну в ревит да, там все через поля данных. Можно свои наборы добавлять в проперти сет.
    --- Сообщения объединены, 8 янв 2022, Оригинальное время сообщения: 8 янв 2022 ---
    Наверное можно было бы сделать модель похожую на ревит. Типа менеджера атрибутов. Только сама иерархия классов ревит изначально под это заточена. А автокад нет. Поэтому что то похожее разработать надо очень постараться и на одном энтузиазма это не вывезешь.
     
    #9
  10. 1958

    Форумчанин

    Регистрация:
    21 авг 2013
    Сообщения:
    639
    Симпатии:
    699
    Адрес:
    СССР, город хлебный
    ЛЭП.jpg
    Может в чем-то и есть преимущество в использовании XData, но я поступаю проще. Я объектам присваиваю гиперссылку с необходимой информацией. Из гиперссылки всегда можно вытащить информацию во внешний файл. И, самое главное, просто наведя курсор на объект, сразу получаешь доп.информацию.
     

    Вложения:

    • ЛЭП.dwg
      Размер файла:
      43,4 КБ
      Просмотров:
      15
    #10
    flareon и Neznayka нравится это.
  11. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Весьма кстати!
    Я тоже не сразу узнал, и понял, что далеко не все программисты (или даже практически никто) знают, что гиперссылки - это именно что XData, с названием PE_URL.
    Можете убедиться с XDLIST.
     
    #11
    Steinar нравится это.
  12. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Продолжаем.
    Например, выбор объектов с указанными XData - XDTOOLS_SELAPPS.lsp.
    Можно выбрать сразу несколько XData Apps, выбор можно сделать обратным - опция "without the chosen" ("без указанного").
    Т.о. можно выбрать объекты с указанными XData Apps, без этих XData Apps, имеющие XData Apps, без XData Apps.

    Кстати, все lsp содержат и русифицированный вариант - сейчас закомментирован.
     

    Вложения:

    #12
  13. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    5.929
    Симпатии:
    2.093
    Адрес:
    г. Москва
    А есть у lisp какой-либо независящий от кодировок i18n-механизм? Пытался заморочится этим, но быстро обломился, кроме использования uni-кодов ничего не нашёл.
     
    #13
  14. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Оффтоп

    Чо? ::biggrin24.gif::
    Я не программист!
    Могу легко попасть пальцем в небо, но выложу все, что покажется похожим и пролетало мимо.
    Возможно, Вы имеете в виду, чтобы язык выбирался автоматом в зависимости от языка Win или AutoCAD?
    Я краем зацепил такое. С программами VVA. Кажется, с bgtools.
    Вот, сейчас там чисто на здравом смысле нашел:
    Код:
    (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
          "Выберите динамические блоки"
          "Select dynamic blocks"
          )

    Лучше вопросы за пределами темы XDTOOLS задавать не здесь.

    Наверное, попозже попробуем сделать автоматическое включение русских надписей...
     
    #14
    Последнее редактирование: 21 янв 2022
    zvezdochiot нравится это.
  15. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Обновленные улучшенные уточненные версии всех 6 команд - XDTOOLS-v-0-4.zip.
    В т.ч. и предыдущей XDTOOLS_SELAPPS.lsp.
     

    Вложения:

    #15
  16. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Новая команда - XDTOOLS_REMOVE, для удаления указанных XData у выбранных объектов.
    Вместе с некоторыми обновлениями-исправлениями предыдущих, см. архив.
     

    Вложения:

    #16
  17. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Новая команда - XDTOOLS_SELVALUES, для выбора объектов с указанными значениями в XData у выбранных объектов.
    Действует маска - "*" для символьных значений, и для любых значений действует выбор на >, < и <> (не равно).
    Введенное в поле выбора значение означает выбор всех объектов с такими значениями. Пустое значение означает выбор с отсутствующим значением.

    Читал, что такой выбор для XData почему-то невозможен. Возможен, и сделан, и действует.
     

    Вложения:

    #17
  18. Павел55214

    Форумчанин

    Регистрация:
    19 ноя 2013
    Сообщения:
    218
    Симпатии:
    395
    Адрес:
    г. Омск
    Ты наконец таки изучил C# и пишешь функции или нашел того кто пишет их для тебя?
     
    #18
  19. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Это Lisp.
    У меня голова не приспособлена для программирования. Это открытый проект - пишут желающие программисты.
    И не для меня - для всех.

    С лиспом есть главная проблема для описательных данных - кажется, на нем нельзя сделать просмотр и редактирование их содержания в виде таблицы. А без табличного просмотра-редактирования работать с описательными данными труднее, меньше наглядность, общее понимание содержания.
    Это решаемо на C. Но с C другая засада - привязанность к версиям AutoCAD.
     
    #19
  20. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Новая команда - XDTOOLS_XD2XD, для переноса/добавления значений из поля в поле XData или из одного XData в другой - для одновременно присоединенных к выбранным объектам.
    Выбор XData здесь не ограничен только пользовательскими XData, доступны данные из XData самого AutoCAD. Например, для получения данных из гиперрсылок. (Являющихся тоже XData).
    В режиме Replace происходит замена значений. В режиме ADD - добавление. Для числовых полей это означает суммирование чисел.

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

    Вложения:

    #20

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление