В чем зло VBA? - Страница 11
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Сообщество > Разное > В чем зло VBA?

В чем зло VBA?

Закрытая тема
Поиск в этой теме
 
Непрочитано 16.03.2009, 13:09
#201
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Давно хотел спросить... А может LISP с подшивкам автокада работать?

З.Ы.
Я в LISPе ноль (хочется, но некогда) . В VBA кое-какие макросы делал, делаю и делать буду (в том числе по подшивкам) (ну по крайней мере пока не понадобится что то глобальное сделать, но тут лучше подключать профессионольных программистов).
Сергей Богатов вне форума  
 
Непрочитано 16.03.2009, 13:19
#202
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Если ты через COM работаешь, то лисп это тоже может соответственно.
Sleekka вне форума  
 
Непрочитано 16.03.2009, 13:26
#203
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


А я думаю не может. Совсем. Хотя может я и не прав, но пока не встречалось ни одной реализации этого дела на лиспе.
Makswell вне форума  
 
Непрочитано 16.03.2009, 13:29
#204
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
А может LISP с подшивкам автокада работать?
Конечно. Всё, что описано в объектной модели, доступно и в LISP и в VBA.
Для подшивок отдельный файл справки acad_sso.chm.
ShaggyDoc вне форума  
 
Непрочитано 16.03.2009, 13:36
#205
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Конечно. Всё, что описано в объектной модели, доступно и в LISP и в VBA.
Для подшивок отдельный файл справки acad_sso.chm.
В таком случае не могли бы Вы прояснить, как хотя бы установить связь с подшивкой? Что писать после (vlax-get-or-create-object... ?
Makswell вне форума  
 
Непрочитано 16.03.2009, 13:51
#206
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Цитата:
В таком случае не могли бы Вы прояснить, как хотя бы установить связь с подшивкой? Что писать после (vlax-get-or-create-object... ?
Я бы тоже посмотрел

Уважаемые, может быть вы и про datalinkmanager чего либо знаете?
Я тут начал тему http://forum.dwg.ru/showthread.php?t=31805 дайте хоть какой-нибудь ответ(лучше положительный)
Сергей Богатов вне форума  
 
Непрочитано 16.03.2009, 13:52
#207
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402


Сергей Богатов, не надо свою тему проталкивать на каждом углу. Кто сможет - ответит. Имей терпение.
---
Добавлено: может, вопросы про подшивку и программную работу с ней вынести в отдельную тему все же? Или искать аналогичную и задавать вопросы там.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.03.2009, 14:14
#208
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Добавлено: может, вопросы про подшивку и программную работу с ней вынести в отдельную тему все же? Или искать аналогичную и задавать вопросы там.
Алексей, в том то и дело что VBA прекрасно справляется с подшивками в отличие от лиспа. Я думаю этот факт соответствует названию темы "В чем зло VBA?" и говорит о безусловном преимуществе VBA перед лиспом в данном вопросе.
Makswell вне форума  
 
Непрочитано 16.03.2009, 14:21
#209
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402


Makswell, а как тебе постановка ответа типа "И VisualLISP, и VBA, и .NET-сборки, и arx-приложения могут работать с подшивками. Но некоторые вещи приходится буквально нащупывать"
P.S. Я с подшивками программно не работал - не было необходимости.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.03.2009, 14:35
#210
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Makswell, а как тебе постановка ответа типа "И VisualLISP, и VBA, и .NET-сборки, и arx-приложения могут работать с подшивками. Но некоторые вещи приходится буквально нащупывать"
P.S. Я с подшивками программно не работал - не было необходимости.
Алексей, постановка ответа замечательна, но бездоказательна. Замечательна в том смысле, что такой ответ держится только на одном твоём авторитете как опытного программиста. А тебе я привык верить наслово, впрочем также, как и ShaggyDoc'у. Но хотелось бы доказательств. Вот на VBA всё просто:
Код:
[Выделить все]
Dim oSheetSetMgr As AcSmSheetSetMgr
Set oSheetSetMgr = New AcSmSheetSetMgr
... и поехали дальше работать с подшивкой

Так в чем же зло VBA? Он же может работать с подшивками в отличие от лиспа. (Это я написал типа чтобы от темы не отступать )
Makswell вне форума  
 
Непрочитано 16.03.2009, 14:37
#211
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Цитата:
Сообщение от Makswell Посмотреть сообщение
Алексей, постановка ответа замечательна, но бездоказательна. Замечательна в том смысле, что такой ответ держится только на одном твоём авторитете как опытного программиста. А тебе я привык верить наслово, впрочем также, как и ShaggyDoc'у. Но хотелось бы доказательств. Вот на VBA всё просто:
Код:
[Выделить все]
Dim oSheetSetMgr As AcSmSheetSetMgr
Set oSheetSetMgr = New AcSmSheetSetMgr
... и поехали дальше работать с подшивкой

Так в чем же зло VBA? Он же может работать с подшивками в отличие от лиспа. (Это я написал типа чтобы от темы не отступать )
Присоединяюсь
Сергей Богатов вне форума  
 
Непрочитано 16.03.2009, 14:39
#212
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Прошу прощения что влезаю, прочитал весь топик и как-то задело что никто не дал ответ на #161 и #163.

Действительно reDim скушаем много ресурсов, но в таком случае его применение не оправдано. Для данной цели проще использовать Коллекции объектов, в которых добавление, удаление и поиск данных в заданных условиях выполнить не сложно.
Boxa вне форума  
 
Непрочитано 16.03.2009, 14:59
#213
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402


Makswell, да бога ради! С тебя готовая подшивка и задача, которую решать "руками" по каким-либо причинам нерентабельно. Скажу честно - самостоятельно ковыряться просто некогда.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.03.2009, 15:23
#214
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Makswell, да бога ради! С тебя готовая подшивка и задача, которую решать "руками" по каким-либо причинам нерентабельно. Скажу честно - самостоятельно ковыряться просто некогда.
Алексей, я же говорю, что верю наслово. Да и никаких задач по подшивкам у меня пока нет. Хотя вот, например, была такая тема: http://forum.dwg.ru/showthread.php?t=5111 Но там я никакой проблемы в том, чтобы перенумеровать листы вручную я не вижу.

Я же говорю просто про то, как установить связь с подшивкой. И всё, больше никаких задач. Только получение в лиспе vla-объекта подшивки, с которым можно было бы работать далее.

Хотя ещё раз повторю, что никаких конкретных задач по программной работе с подшивкой на данный момент у меня нет. Так что если не хочешь, то не буду настаивать и отнимать тем самым твоё время.

Но если возьмёшься за это, то вот тебе ещё одно авторитетное мнение: http://forum.dwg.ru/showpost.php?p=161313&postcount=2 Так сказать, для стимула.
Makswell вне форума  
 
Непрочитано 16.03.2009, 15:26
#215
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Makswell, да бога ради! С тебя готовая подшивка и задача, которую решать "руками" по каким-либо причинам нерентабельно. Скажу честно - самостоятельно ковыряться просто некогда.
Это подшивка http://dwg.ru/dnl/5319
Задача 1 - перенумеровывать свойство "Sheet Number" (по возрастанию)
Задача 2 - подсчитать общее количество листов и занести в пользовательское свойство "Листов"
Задача 3 - значению "Title" присвоить значение "Description"
Задача 4 - заменить значение "Разработал" на произвольное - к примеру NEMO

Эта подшивка включает в себя малое кол-во листов - можно и руками всё сделать - а вот к примеру если здесь хотябы 50 листов, то уже проблема... в VBA - не проблема

Последний раз редактировалось Сергей Богатов, 16.03.2009 в 15:32.
Сергей Богатов вне форума  
 
Непрочитано 16.03.2009, 22:14
#216
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Так в чем же зло VBA? Он же может работать с подшивками в отличие от лиспа
VBA может работать с подшивками (в отличие от LISP) только потому, что какие-то уроды в Аутодеск при написании COM-объектов подшивок не сделали интерфейс IDispatch. Соответственно не будут иметь доступ к подшивкам и приложения, написанные на других языках.

Обнаружилось это после анализа ACSMCOMPONENTS17Lib_TLB. Ну и не надо - подшивки инструмент для интерактивной работы.

Почему так сделали - не знаю. Никаких объективных причин нет. То ли индус какой обкурился, то ли специально сделали, чтоб кто-нибудь мог написать - "В VBA всё просто".

По этому поводу и на Аутодеск наезжали, но ответ 5-летней давности "Adding LISP access to SSM COM API's is on the wishlist"

Вот и пример, как мозги калечат.
ShaggyDoc вне форума  
 
Непрочитано 17.03.2009, 08:19
#217
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Итог - для каждой задачи свой инструмент. И если мне хватит велосипеда чтобы доехать до магазина и купить батон(при этом мне надо будет ехать по узким улочкам), то я не пойду за бульдозером в гараж И наоборот - если будет задача выкапать длинную и глубокую траншею - я постараюсь найти большой и мощный экскаватор(и напрягу кого-либо кто знает как им управлять) Я надеюсь, что аналогия понятна
З.Ы.
Цитата:
потому, что какие-то уроды в Аутодеск при написании
А почему же сразу уроды?
З.З.Ы.
Цитата:
Вот и пример, как мозги калечат.
Знание или не знание чего-либо не говорит о том покалечены ли у кого-либо мозги или он гений. Будем терпимей, хоть это и очень сложно

З.З.З.Ы.
Да и ещё самое главное Очень хорошо если у вас есть полный доступ к компу, а если вы User и бесправны на вашей рабочей машине? Всякий внешний софт не дают поставить. Таким образом у вас выбор - или LISP или VBA. LISP что то не может - остаётся VBA
Вот так

Последний раз редактировалось Сергей Богатов, 17.03.2009 в 08:34.
Сергей Богатов вне форума  
 
Непрочитано 17.03.2009, 23:05
#218
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402


Нда, я погорячился, заявив, что в VisualLISP возможна работа с подшивками. Не, наверное, можно нарисовать dll и работать с подшивкой как с СОМ-сервером. Но это по меньшей мере странно получится
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.03.2009, 06:42
#219
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
А почему же сразу уроды?
Может не сразу. Может это "мягко говоря", а надо было "грубо выражаясь".

А "потому", что COM-технология изначально предназначена для доступа к объектам приложения из любых других приложений. И весь AutoCAD сделан так, и сделан правильно. И только SheetSet вдруг сделали "закрытой". Причем, судя по тексту объявлений в TLB, даже не специально из каких-то стратегических соображений, а просто из-за низкой квалификации.

"Да и ещё самое главное". Что, это "самое главное":

Цитата:
...если вы User и бесправны на вашей рабочей машине? Всякий внешний софт не дают поставить. Таким образом у вас выбор - или LISP или VBA. LISP что то не может - остаётся VBA
Причем здесь права юзеров? И LISP и VBA работают только внутри AutoCAD, а он уже стоит. Пользователь может не иметь привилегий на какие-то конкретные действия, но это не зависит от среды программирования - только от программиста.

Цитата:
LISP что то не может - остаётся VBA
Остаётся VBA для тех, кто только VBA и знает. Если мне, например, зачем-то понадобится работать с SheetSet - напишу свое приложение, которое умеет работать и с IUnknown. Но вряд ли понадобится.

Вот "Мерседес" нельзя завести "кривым стартером", а "газон" - можно. Так что, из этого делать вывод "остается только "газон"?
ShaggyDoc вне форума  
 
Непрочитано 18.03.2009, 08:52
#220
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Причем здесь права юзеров? И LISP и VBA работают только внутри AutoCAD, а он уже стоит. Пользователь может не иметь привилегий на какие-то конкретные действия, но это не зависит от среды программирования - только от программиста.
Тут подразумевается что никакую внешнюю систему программирования на рабочей машине проектировщика ставить не будут

Цитата:
Остаётся VBA для тех, кто только VBA и знает. Если мне, например, зачем-то понадобится работать с SheetSet - напишу свое приложение, которое умеет работать и с IUnknown.
То есть если я знаю VB и могу за 4-8 рабочих часов(не напрягаясь) сваять макросик, то вы мне предлагаете бросить всё, выучить лисп,
Цитата:
нарисовать dll и работать с подшивкой как с СОМ-сервером
пардон - мне так не хочется. Я проектировщик... Мне нужно чтобы РАБОТАЛО, а на чём это сделано мне без разницы. Я понимаю что в VBA много косяков, но самый большой косяк ЛИСПа что я его не знаю, а времени изучить не всегда найдешь.
ЗЫ
Надо посмотреть что такое VB.NET или вспомнить студенческое прошлое и упросить сисадминов поставить Delphi
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Сообщество > Разное > В чем зло VBA?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пароль к VBA karp_b Программирование 24 29.08.2013 12:43
Юмор 2007 Огурец Разное 1172 29.12.2007 11:16
Чем можно удалить файл, занятый не понятно чем? G.A.W. Разное 4 08.10.2007 15:12
ActiveX Automation из VBA karp_b Программирование 5 14.09.2007 18:05
VBA vs LISP Kosenko Sasha LISP 23 06.03.2007 02:56