И я вот думаю, как связать конкретный блок с конкретной штриховкой.Например, через расширенные данные (XData).
1. Определять попадает ли блок на штриховку (данный блок находится на непечатном слое, его можно кинуть поверх штриховки и таким образом программно определить принадлежность)Что именно непонятно? Как вычислить габариты штриховки, найти её среднюю точку и поместить точку вставки блока в эту точку? Ты это не понимаешь?
Я только полагаю, что это можно сделать программно, но не совсем понимаю, как именно.
3. Создать кастомную штриховку, которая будет нести в себе и инфу о высоте/толщине. :)Можно в штриховку в расширенные данные вписать эту информацию. Но кое-что мне непонятно. Ты программно штрихуешь или это делает пользователь средствами AutoCAD? Если пользователь, то так сделать не получится.
Например, через расширенные данные (XData).Пошел читать. :)
Что именно непонятно? Как вычислить габариты штриховки, найти её среднюю точку и поместить точку вставки блока в эту точку? Ты это не понимаешь?Сейчас мне уже не понятно, зачем находить среднюю точку штриховки и зачем именно туда помещать блок?
Можно в штриховку в расширенные данные вписать эту информацию. Но кое-что мне непонятно. Ты программно штрихуешь или это делает пользователь средствами AutoCAD? Если пользователь, то так сделать не получится.Я ничего не знал о возможности вписки в штриховку каких-либо данных. Поэтому, если там все удобно, то не составит труда создать командный метод (с небольшим интерактивом для пользователя), который бы вставлял штриховку в автокад.
И мне было не понятно, как определить, находится ли в полученных габаритах штриховки точка вставки блока?Ты не знаешь как определить находится ли точка внутри прямоугольника? ;)
Я ничего не знал о возможности вписки в штриховку каких-либо данных.Эти данные можно вписать в любой объект/примитив AutoCAD. Структуру данных можешь определять сам.
Ты не знаешь как определить находится ли точка внутри прямоугольника?(https://s11.postimg.org/x654pcx1r/photo_2016_09_19_01_53_46.jpg) (https://postimg.org/image/x654pcx1r/)
Эти данные можно вписать в любой объект/примитив AutoCAD. Структуру данных можешь определять сам.Вот с этим обязательно поиграюсь. Раз структура формируемая, то это очень круто и удобно!! Спасибо!
Про Xdata: http://adn-cis.org/ispolzovanie-.netapidlya-dobavleniya-i-udaleniya-rasshirennyix-dannyix.htmlСпасибо!! :)
Я надеялся, что есть какой-то крутейший метод типаКак средствами AutoCAD определить расположение точки относительно контура. (http://adn-cis.org/kak-sredstvami-opredelit-raspolozhenie-tochki-otnositelno-kontura.html)
Как альтернативу можно использовать группы, т.е. попарно объединять в группы.Кстати, очень неплохая идея. Есть только одна проблема - при копировании в другой чертеж (если в этом может возникнуть необходимость) группы "разваливаются", так как они softpointer и не копируются между чертежами.
ИМХО, самый простой и наглядный способ соотнести блок и штриховку - цвет.Есть во мне стереотипы и предрассудки насчет выделения цветом, но согласен, работать все будет, как-то даже очень просто!
Как альтернативу можно использовать группы, т.е. попарно объединять в группы.Вот это мне уже совсем нравится!!! Просто я никогда программно с группами не работал. Может, есть какая заготовочка по обращению с группами (буду признателен)?
Как средствами AutoCAD определить расположение точки относительно контура.Спасибо.:) Что-то я поиском не добрался до этой темы.
Есть только одна проблема - при копировании в другой чертеж (если в этом может возникнуть необходимость) группы "разваливаются", так как они softpointer и не копируются между чертежами.В принципе, если концепция использования исключает копирование в другой чертеж (как в моей ситуации), то вариант шикарнейший.
Эти данные можно вписать в любой объект/примитив AutoCAD.Если говорить о штриховке, то в ней изначально есть кое-какие данные:
Структуру данных можешь определять сам.Сильно тут не разгонишься, как я понял:
Как я понял, их лучше не трогать?Правильно понял.
Сильно тут не разгонишься, как я понял:Какой-то дурацкий перевод (это я не про тебя, а про картинку). Да еще и с ошибками.
Какой-то дурацкий перевод (это я не про тебя, а про картинку). Да еще и с ошибками.Со справки AutoCAD скрин сделал.
Со справки AutoCAD скрин сделал.Вот здесь: http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf начиная со страницы 246 (Extended Data) правильнее. Единственная разница DXF по сравнению с TypedValue, что точки передаются как массив из трех double, а не по отдельности каждая из координат в своей группе. Т.е. в 1010 содержится все три координаты, а не в 1010 - X, в 1020 - Y, и в 1030 - Z.
Вот здесь: http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf (http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf) начиная со страницы 246 (Extended Data) правильнее. Единственная разница DXF по сравнению с TypedValue, что точки передаются как массив из трех double, а не по отдельности каждая из координат в своей группе. Т.е. в 1010 содержится все три координаты, а не в 1010 - X, в 1020 - Y, и в 1030 - Z.Согласен, если читать только справку AutoCAD, то не совсем ясен тот факт, что код 1001 соответствует началу приложения/группы, которое/которая включает в себя все остальные коды и информацию. В принципе, для себя я решил, что мне достаточно всего лишь 2х кодов (1001 и 1000). 1001 - я начинаю группу, затем я формирую n-ое количество строк с кодом 1000 с абсолютно любым содержимым.
В переводе написана глупость в том, что код 1000 - это в действительно просто строка, а код 1001 - это имя приложения (тоже строка, но имеющая радикально другой смысл).
В принципе, для себя я решил, что мне достаточно всего лишь 2х кодов (1001 и 1000). 1001 - я начинаю группу, затем я формирую n-ое количество строк с кодом 1000 с абсолютно любым содержимым.Можно и так, если в тексте никогда не может встретится подчеркивание. Я так понял, что подчеркивание - это твой символ разделитель. Я бы выбрал бы какой-то более экзотический. Например, \ или | (можно парные).
Например,
1001 - Перекрытие (appname/string)
1000 - Класс бетона_С16/20
1000 - Толщина перекрытия_200
1000 - Диаметр фона_12
и т.д.
Я так понял, что подчеркивание - это твой символ разделитель.Да, именно так. На него я буду опираться при "извлечении" информации.
Я бы выбрал бы какой-то более экзотический. Например, \ или | (можно парные).Кстати, да. Вы правы. Спасибо за совет.
Это меня удивило потому, что я ожидал другой результат, такой, например:Ты абсолютно прав о том, что происходит полная замена. Это как замена по ключу. Захламления нет.
Код - INI [Выбрать]
1001 - Перекрытие (appname/string)
1000 - Класс бетона||С16/20
1000 - Класс бетона||С20/25
Но существующий вариант меня, вообще, целиком устраивает. Вопрос только, не происходит ли там какого "захламления", которым часто тут пугают ;) ?
Захламления нет.Отлично :)