|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
![]() |
#1 | |
VBA. Можно ли найти программно список всех полилиний, которые пересекает исходный луч, без перебора в цикле?
Регистрация: 28.01.2019
Сообщений: 62
|
||
Просмотров: 5459
|
|
||||
Если луч вертикальный, то можно воспользоваться методом множественного выбора объектов с опцией "секущая рамка". Высота рамки - весь чертёж, ширина - самая минимальная. Фильтр выбора настроить таким образом, чтобы в него попадали только полилинии. Только учтите, что этот метод работает только с теми объектами, которые в данный момент видимы на экране.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) Последний раз редактировалось Do$, 30.01.2019 в 15:52. |
||||
![]() |
|
||||
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) Последний раз редактировалось Do$, 30.01.2019 в 15:51. |
||||
![]() |
|
||||
Регистрация: 28.01.2019
Сообщений: 62
|
А как использовать деревья в VBA?
----- добавлено через ~12 мин. ----- [quote=Do$;1780909]Даже, есть более подходящий метод - SelectByPolygon с опцией Fence Можно конешь выбором с рамкой делать, но этож уже костыль на костыле получится. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
хотите сделать систему, работающую c тысячами объектов без заметных лагов - либо придется городить костыль на костыле, либо уходите с ActiveX/VBA/Interop в NetApi/ObjectARX. |
|||
![]() |
|
||||
Цитата:
По-моему - это как раз то, что требуется для решения озвученной задачи. Не понимаю в чём костыльность.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 28.01.2019
Сообщений: 62
|
Цитата:
Я не программист, а проектировщик, и мне некогда изучать Lisp/C++/.Net/ObjectARX и т.д. Так бы я ваще утонул в дебрях более продвинутых языков и проекты было бы не когда делать, да и VBA среда есть не только в Автокаде, но и в МС Офис, а это удобно. Проги делаю делаю себе для автоматизации мелких задач, мне за них никто не платит, смысла так уж напрягаться пока не вижу. |
|||
![]() |
|
||||
удобно , но еще и более медленно..
в свое время специально тестировал скорость выполнения VB из внешнего приложения ехе, excel и встроенного в АК vba, так вот vba из под ак самый быстрый из перечисленных, на некоторых операциях на порядок.
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
По умолчанию с 2013 акада отсутствует, насколько помню. И запустить проект *.dvb без установки VBA enabler невозможно в принципе в отличие от других языков разработки. А для версий х64 до 2014 акада еще есть подводный камень. Interop из сборки *.dll работал на порядок быстрее внешнего приложения через COM. А быстродействие .Net на порядок-другой выше Interop. Все равно надо думать над структурой программой - но выгадывать каждое лишнее обращение к чертежу уже не требуется обычно. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616
|
Цитата:
И если уж на то пошло, то на .NET можно писать и под Офис и под Акад и под Ревит и под Теклу и Олплан и под чёрта в ступе, а среда разработки не только на пару порядков удобнее, но и вообще бесплатная. |
|||
![]() |
|
||||
Offtop: Дык никто ж не спорит, что СИ и NET круче и быстрее, только вот заставить себя это изучать при отсутствии насущной необходимости (и так что надо работает)
Мужик пилит бревно тупой пилой... ему говорят, -Ты чооо, пилу поточи легче и быстрее будет! а он... -Некогда мне точить, мне пилить надо .. ![]()
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,115
|
|
|||
![]() |
|
||||
Регистрация: 28.01.2019
Сообщений: 62
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Offtop: ... но не удобство тестирования
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Это уже оффтоп будет, продолжать разговор по этой теме
![]() ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616
|
кому как... последние версии студии позволяют писать и править код во время отладки, так что разница с VBA IDE в этом плане вообще минимальна. С другой стороны, при определенном подходе, отладка занимает не так уж и много времени и не так уж и часто нужна при решении типовых задач....
|
|||
![]() |
|
||||
Регистрация: 02.10.2016
Сообщений: 205
|
офтоп
История программных революций от Microsoft, вкратце. Сначала были Windows API и DLL Hell. Революцией №1 было DDE – помните, как ссылки позволили нам создавать статусные строки, отражающие текущую цену акций Microsoft? Примерно тогда же Microsoft создала ресурс VERSION NFO, исключающий DLL Hell. Но другая группа в Microsoft нашла в DDE фатальный недостаток – его писали не они! Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом. В OLE появились интерфейсы, исключающие DLL Hell. Помните болезнь с названием «по месту», при которой мы мечтали встроить все свои приложения в один (возможно, очень большой) документ Word? Где-то в то же время Microsoft уверовала в религию С++, возникла MFC, решившая все наши проблемы ещё раз. Но OLE не собиралась сложа руки смотреть на это, поэтому оно заново родилось под именем COM, и мы внезапно поняли, что OLE (или это было DDE?) будет всегда – и даже включает тщательно разработанную систему версий компонентов, исключающую DLL Hell. В это время группа отступников внутри Microsoft обнаружила в MFC фатальный недостаток – его писали не они! Они немедленно исправили этот недочёт, создав ATL, который как MFC, но другой, и попытались спрятать все замечательные вещи, которым так упорно старалась обучить нас группа COM. Это заставило группу COM (или это было OLE?) переименоваться в ActiveX и выпустить около тонны новых интерфейсов (включая интерфейсы контроля версий, исключающие DLL Hell), а заодно возможность сделать весь код загружаемым через броузеры, прямо вместе с определяемыми пользователем вирусами (назло этим гадам из ATL!). Группа операционных систем громким криком, как забытый средний ребенок, потребовала внимания, сказав, что нам следует готовиться к Cairo, некой таинственной хреновине, которую никогда не могли даже толком описать, не то, что выпустить. К их чести, следует сказать, что они таки представили концепцию «System File Protection», исключающую DLL Hell. Но тут некая группа в Microsoft нашла фатальный недостаток в Java — её писали не они! Это было исправлено созданием то ли J, то ли Jole, а может, и ActiveJ (если честно, я просто не помню), точно такого же как Java, но другого. Это было круто, но Sun засудило Microsoft по какому-то дряхлому закону. Это была явная попытка задушить право Microsoft выпускать такие же продукты, как у других, но другие. Помните менеджера по J/Jole/ActiveJ, стучащего по столу туфлей и говорящего, что Microsoft никогда не бросит этот продукт? Глупец! Все это означало только одно – недостаток внимания к группе ActiveX (или это был COM?). Эта невероятно жизнерадостная толпа вернулась с COM+ и MTS наперевес (может, это стоило назвать ActiveX+?). Непонятно почему к MTS не приставили «COM» или «Active» или «X» или «+» – они меня просто потрясли этим! Они также грозились добавить + ко всем модным тогда выражениям. Примерно тогда же кое-кто начал вопить про «Windows DNA» (почему не DINA) и «Windows Washboard», и вопил некоторое время, но всё это почило раньше, чем все поняли, что это было. К этому моменту Microsoft уже несколько лет с нарастающей тревогой наблюдала за интернетом. Недавно они пришли к пониманию, что у интернета есть фатальный недостаток: ну, вы поняли. И это приводит нас к текущему моменту и технологии .NET, похожей на Интернет, но с большим количеством пресс-релизов. Главное, что нужно очень чётко понимать — .NET исключает DLL Hell. В .NET входит новый язык, C#, (выясняется, что в Active++ Jspresso был фатальный недостаток, от которого он и помер). .NET включает виртуальную машину, которую будут использовать все языки (видимо, из-за фатальных недостатков в процессорах Интел). .NET включает единую систему защиты (есть все-таки фатальный недостаток в хранении паролей не на серверах Microsoft). Реально проще перечислить вещи, которых .NET не включает. .NET наверняка революционно изменит Windows-программирование… примерно на год. ----- добавлено через ~11 мин. ----- быстро обрабатываются только проидексированные массивы. тоесть массив перед этим нужно прошерстить по ряду характерных признаков либо сразу при добавлении в массив присваивать соответствующие индексы. Последний раз редактировалось Кулик Алексей aka kpblc, 02.02.2019 в 22:14. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
LISP.Окружности в начальных точках всех полилиний чертежа | Raznouh | LISP | 5 | 20.01.2014 07:30 |
Нужен LISP: получить список групп в которые входит объект | koval_a_r | LISP | 9 | 05.04.2013 14:49 |
Два вопроса новичка: Доступ к свойствам полилинии и обработка всех полилиний | Иван Морозов | Программирование | 7 | 02.11.2012 17:11 |
Подскажите где можно найти проекты крытого горнолыжного курорта (металлокаркас) | cool4i | Поиск литературы, чертежей, моделей и прочих материалов | 0 | 13.11.2011 21:34 |