Сообщество программистов Autodesk в СНГ

Статьи => Опубликованные статьи => Тема начата: ADSK от 18-04-2016, 19:33:34

Название: Объединение блоков AutoCAD с использованием .NET API
Отправлено: ADSK от 18-04-2016, 19:33:34
Объединение блоков AutoCAD с использованием .NET API (http://adn-cis.org/obedinenie-blokov-autocad-s-ispolzovaniem-.net-api.html)
Название: Re: Объединение блоков AutoCAD с использованием .NET API
Отправлено: Андрей Бушман от 20-04-2016, 08:37:06
Код - C# [Выбрать]
  1. string first = pr.StringResult.ToUpper();
  2. ...
  3. string second = pr.StringResult.ToUpper();
  4. ...
  5. string merged = pr.StringResult.ToUpper();

Помнится читал в какой-то книге (кажется у Стровструпа) о том, что существуют языки, в которых некоторым строчным буквам нет заглавного соответствия. В виду этого автор рекомендовал приводить строки к нижнему регистру, а не к верхнему, дабы код был более универсальным.

Цитировать
Мы видим, что мы получается комбинированный набор атрибутов - с повторяющимися именами - в полученном блоке... Мы могли бы, конечно, отфильтровать любые атрибуты, чтобы они не повторялись дважды, что может быть обязательным требованием.
Это не "может быть", но всегда будет обязательным требованием, иначе такой блок никому не нужен будет (равно как и код, создающий такие блоки). Соответственно, следовало не лениться, "оставляя читателям для экспериментов", но раз уж показывать пример, то полностью завершённый, а не наполовину сделанный.
Название: Re: Объединение блоков AutoCAD с использованием .NET API
Отправлено: Александр Ривилис от 20-04-2016, 11:51:35
Это не "может быть", но всегда будет обязательным требованием, иначе такой блок никому не нужен будет (равно как и код, создающий такие блоки).
Никогда не говори никогда.
Соответственно, следовало не лениться, "оставляя читателям для экспериментов", но раз уж показывать пример, то полностью завершённый, а не наполовину сделанный.
Эту претензию можешь предъявить Kean Walmsley - автору статьи.

P.S.: Как ты себе представляешь как выбрать из одноименных примитивов нужные (не первые попавшиеся, а именно нужные)?
Название: Re: Объединение блоков AutoCAD с использованием .NET API
Отправлено: Андрей Бушман от 20-04-2016, 12:00:59
Никогда не говори никогда.
Я пишу о конкретном контексте и вы прекрасно понимаете, что такие блоки только будут сбивать пользователя с толку и вносить ошибки, если с атрибутов должна считываться информация.
Цитировать
Эту претензию можешь предъявить Kean Walmsley - автору статьи.
Я полагал, что
Цитировать
Обсуждение: http://adn-cis.org/forum/index.php?topic=7042
Означает именно обсуждение, а не просто ссылка "для галочки". Сорри, что "против шерсти" высказался...
Цитировать
P.S.: Как ты себе представляешь как выбрать из одноименных примитивов нужные (не первые попавшиеся, а именно нужные)?
А разве это я статью опубликовал? Какие ко мне-то претензии? Я обозначил проблему, с которой могут столкнуться пользователи. Уж извините, что не сделал вид, что её нет...
Название: Re: Объединение блоков AutoCAD с использованием .NET API
Отправлено: Александр Ривилис от 20-04-2016, 12:12:32
А разве это я статью опубликовал? Какие ко мне-то претензии? Я обозначил проблему, с которой могут столкнуться пользователи. Уж извините, что не сделал вид, что её нет...
С одноимёнными атрибутами всё может быть очень индивидуально. Например, часть атрибутов должна браться из одного блока (принцип - слой, цвет, наличие расширенных данных, угол наклона, высота текста, текстовый стиль, комбинация всего выше названного, и т.д.), часть из второго. Но статья была посвящена не этому - она посвящена принципу создания блока на основе нескольких блоков, указывает метод для объединения: DeepCloneObjects для блоков из одного чертежа и WblockCloneObjects для блоков из разных чертежей. Всё остальное бантики и рюшечки, зависящие от конкретной постановки задачи и отвлекающие от основной идеи. IMHO.