Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2Vtzqx6kV7S
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Стандарт НП «АВОК» 7.11-2024
«Рекомендации по проектированию инженерных систем
дошкольных образовательных организаций»

АВОК в соц. сетях
ИНН: 7714824045 | erid: 2VtzqwzKQiU
20 страниц V  « < 12 13 14 15 16 > »   
Добавить ответ в эту темуОткрыть тему
> Создание спецификации автоматически (Дубль2), Рассматриваются технология и ее реализация по автоматическому создани
kpblc
сообщение 4.10.2007, 12:02
Сообщение #391


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Ты не понял задачи. Запиши лисп, к примеру, такой:
Код
(defun testalert()
(alert "Ну и пускай я не прав. /kpblc/")))

Зайди в акад, загрузи этот лисп обычным _appload, а потом попробуй определить каталог, в котором был записан этот лисп. По твоей же логике пользователи будут так загружать, а не использованием getfiled или еще чего-то.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 13:06
Сообщение #392





Guest Forum






Способов запуска макросов явно не один. Я считаю макросы приложением к AutoCAD-у и поэтому прописываю путь в файл *.cfg а не реестр Windows. Создаю там свой раздел и храню пути.

(setcfg "AppData/Kpblc_all/lsp/_kpblc---load_" Причем последнее значение всегда использую имя файла без расширения, так легче его находить.

И так 1-й и последний запуск лиспа через окно ввода заканчивается пропиской его пути в разделе AppData файла acad2006.cfg
(load (setcfg "AppData/Kpblc_all/lsp/_kpblc---load_" (getfiled "Kpblc, я делаю так!" "*" "*" 0))))

далее в строку запуска макроса конфигурации кнопки пишу:
^C^C(load (getcfg "AppData/Kpblc_all/lsp/_kpblc---load_") "Файл не найден")
И все.

Если вводить макросы через Tools\AutoLISP\Load Application... то Autocad загружает функции из этих файлов и пути к ним не сохраняет. А так - дешево и сердито. Инсталятор из одной строчки.

Сообщение отредактировал Supermax - 5.10.2007, 16:46
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 13:15
Сообщение #393





Guest Forum






Добавлю:

К стати считаю данный факт грубейшей недоработкой AutoDesk-a. Если функции загружены из файлов-приложений то к каждой функции должна хранится информация откуда она взята, чтобы после ее запуска автоматически по умолчанию начинать поиск файлов из той папки, из которой запущена данная функция.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 4.10.2007, 14:15
Сообщение #394


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Ххе, и кто ж будет такие строки прописывать, скажи на милость? Пользователь должен запустить инсталлер и больше ни о чем не задумываться. Я такое минут за 20 нарисую в InnoSetup + ACADInst. И нигде не понадобится дополнительно указывать путь до загрузчика.
С позиции "обезьяны с гранатой": машина с новым acad'ом, жмем на интересную кнопень. Опа, запрос на нахождение какого-то файла! Да не буду я искать, нажму Esc. И все, идеология накрылась медным тазом.
Цитата
Если функции загружены из файлов-приложений то к каждой функции должна хранится информация откуда она взята

Ошибка ИМХО. Особенно для модульных систем. Эта информация не только не нужна, но еще и вредна зачастую.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 14:40
Сообщение #395





Guest Forum






Могет быть, могет быть.
Ты говоришь
Цитата
С позиции "обезьяны с гранатой": машина с новым acad'ом, жмем на интересную кнопень. Опа, запрос на нахождение какого-то файла! Да не буду я искать, нажму Esc. И все, идеология накрылась медным тазом.
Только вот вопросы, как обезъяна попала в кад? Какую кнопень ты имеешь в виду? И чем отличается хождение по папкам в поисках install.exe, от хождения по тем же папкам в поисках чегототам.lsp?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 14:53
Сообщение #396





Guest Forum






А вообще-то не о том мы спорим. Давай ставить вопросы прямо. Есть такое мнение (у Kpblc-а) что наработанные тексты надо упорядоченно соскладировать по папочкам и все дерево устанавливать инсталлятором с пропиской в реестре Widows.
Аргументы следующие: Создаем зону в виде дерева папок, в которой отвоевываем у остальных прог место только для макросов (наших есс-но). Наши тексты будут ХОТЕТЬ, чтобы такая зона была обязательно и ориентироваться в ней по заранее прописанному в текстах алгоритму. Как только макрос пытаются загрузить самостоятельно (как это пытался сделать я) получают дулю с маком.
С одной стороны порядок (в смысле качества организованности) будет таким, каким мы его создадим, с другой стороны при дальнейшем наращивании текстов не надо будет ломать головы над "всеобщим хаосом" Windows.
Я правильно выразил твое видение?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Azarko aka VVA_*
сообщение 4.10.2007, 14:53
Сообщение #397





Guest Forum






Есть еще вариант установи, как это делает KITOX
http://www.kitox.com/kitoxtools_ru.php
Цитата
Цитата
KitoX Toolset installation instructions:
1. open "kitox-toolset-setup.dwg" file,
2. load "kitox-toolset-setup.vlx" file (Tools->AutoLISP->Load...).

DWG является поставщиком пути. Остальное у Алексея уже есть.

Сообщение отредактировал Azarko aka VVA - 4.10.2007, 14:53
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 15:13
Сообщение #398





Guest Forum






Еще добавлю про Load Application...
Там есть такая галочка "Add to History" и такая закладочка "History List" А в этой закладочке прописываются загруженные лиспы и причем в порядке History. Данные эти не умирают с выключением када, что говорит, о том, что где-то есть файло в которм сие есть (найти бы).
Надо проэксперементировать и ответить на ряд вопросов:
1. Если при загрузке файла в тексте была ошибка и произошел сбой выполнения функции лиспа пропишется ли такой файл в историю?
2. На каком этапе происходит эта запись?
3. Можно ли прочесть эту историю, если последнее "завещание" написанное на лиспе в загружаемом файле это прочесть последнюю запись истории.

На первый вопрос ответ готов - прописывает
Теперь вопрос ГДЕ ЭТА СВОЛОЧЬ?

Сообщение отредактировал Supermax - 4.10.2007, 15:09
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 4.10.2007, 15:15
Сообщение #399


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Цитата(Supermax @ 4.10.2007, 15:40) [snapback]172758[/snapback]
Могет быть, могет быть.
Ты говоришь Только вот вопросы, как обезъяна попала в кад? Какую кнопень ты имеешь в виду? И чем отличается хождение по папкам в поисках install.exe, от хождения по тем же папкам в поисках чегототам.lsp?

Во-первых, процитирую:
Цитата
Классификация пользователей.
Любая программ должна быть ориентирована на определенный круг пользователей по квалификации и по их потребностям. <...> Попробуем составить абсолютно ненаучную классификацию потенциальных пользователей и подумаем, как эти знания применить при разработках.
<...> Устойчиво существует несколько больших групп, давно получивших в интернет-сообществе имена собственные.
"Чайники"
Это начинающие пользователи, многого пока не знающие. "Чайника" можно сравнить с ребенком, который только учится ходить, но потом, возможно, будет бегать быстрее всех в мире. Вообще-то все мы "чайники", только в разных вопросах. "Чайников" надо любить, уважать и, при разработке программ, постараться максимально облегчить их работу и ускорить "вживание" в систему AutoCAD.
"Тетки"
Особая разновидность "чайника", причем любого пола, хотя чаще всего это милые дамы бальзаковского возраста. От обычных "чайников" их отличает то, что они прекрасно знают предмет (проектирование), но в традиционных (бумажных) технологиях. <...> "Теток" надо любить, уважать, набираться у них опыта и стараться сделать программы так, чтобы они (программы) были удобны и понятны даже для теток.
"Обезьяна с гранатой"
Пишем в единственном числе, потому что в каждом коллективе почему-то всегда имеется один экземпляр (существо) такого класса. Можно сравнить с ребенком, который еще не умеет ходить, но уже умеет бегать, причем ноги его несут куда угодно. Основной признак - нельзя предугадать, что оно сделает с "гранатой". В роли гранаты чаще всего выступает "мышь"<...>

(с) "САПР на базе AutoCAD - как это делается". Стр.55.
Дальше перепечатывать не буду - некогда.
Во вторых: "какую кнопень"? Да любую! Я говорю про первый запуск системы. Рекомендую скачать VMWare Server или любой другой софт, создающий виртуальный комп, на этом виртуальном поставить винду и acad. И на виртуалке пробовать различные методы и средства. Очень пользительно.
---
Добавлено:
> #339: Эта история хранится в реестре. Подробный рассказ о моих мытарствах с ней есть здесь. Еще раз говорю, что приложения, записанные в Autoload Startup suite, грузятся во все профили AutoCAD'a.

Сообщение отредактировал kpblc - 4.10.2007, 15:19
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 15:36
Сообщение #400





Guest Forum






Да я вообще люблю всех (особенно когда жена уезжает на юг отдыхать с дочкой). И теток тоже. Обезъян с гранатой знаю, особенно хорошо их знают сисадмины. Вы сударь предлагаете сделать обезъяноустойчивую прогу? Но за все надо платить. Чем будем расплачиваться за эту устойчивость?
Ладно, это все шутки. Почему реестр, а не autocad2006.cfg?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 15:43
Сообщение #401





Guest Forum






К стати про инсталлеры:
Я тут совершенно бесплатно прогу установил так как ты мне предлагаешь, так она мне столько иконок набросала без моего на то согласия, что теперь я такие проги игнорирую.
Прикрепленные файлы
Прикрепленный файл  кнопки.rar ( 7,65 килобайт ) Кол-во скачиваний: 57
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 4.10.2007, 15:46
Сообщение #402


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



История Startup Suite хранится в реестре. Точка.
Обезьяноустойчивость - практически основное требование (по крайней мере с моей стороны). Я лучше потрачусь на 2-3 дополнительные проверки, чем буду выслушивать по телефону все что обо мне думают.
Почему реестр? Наверное, потому, что (getcfg) и (setcfg) мне просто не понравились. Работая с реестром, я в любой момент могу там поменять данные - когда нужно, где нужно и на что нужно. Самое главное - я это моментально увижу. Глазами, запустив regedit. Вопрос привычки, наверное..
К # 403: Это куда эта прога понакидала? На рабочий стол? Такое ощущение, что это просто "с мясом" выдранный рисунок из ресурсного файла.

Сообщение отредактировал kpblc - 4.10.2007, 15:48
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 4.10.2007, 16:44
Сообщение #403





Guest Forum






Да, в ресурсный файл с иконками.
Ты мне так и не ответил правильно я выразил твое мнение или нет? в посту №397. Читай как "правильно я тебя понял или нет?".

Реестр Windows особоохраняемое файло в крупных конторах. Писать прогу, которая туда лезет и там чего-то куда-то пишет - значит ставить под удар саму прогу. В крупных конторах рассуждают как? - Если прога написана известной фирмой, имеющая службу поддержки и отвечающая за свои ошибки - ставим. Если прога требует инсталляции и при ней оперирует конфигурацией всей системы, а фирмы ее написавшей просто не существует, то такие программы к инсталляции запрещены. Пользователь может сам запустить инсталляцию, но состояние реестра все время контролируется и его изменение тут же обнаруживается. Более того, я лично знаю одо ГУП, где реестры систематически восстанавливаются из сохраненных копий и каждый раз, прийдя на работу пользователь садится за одну и ту же "нулевую" машину. Все временные и постоянные (выполненные окончательно) файлы лежат на файл-сервере. Там можно садится за любую машину. Дисководов нет вообще. Один единственный CD у руководителя группы. Правда с флэшками теперь там плачут. Макрос на такой машине запустить можно только через (load ... или командную строку.
Ладно. Ну его к черту. Хочешь - объединяй. Только последний вопрос. Как запустить твою равнялку "просто так"?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 4.10.2007, 21:51
Сообщение #404


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Цитата
Ты мне так и не ответил правильно я выразил твое мнение или нет? в посту №397. Читай как "правильно я тебя понял или нет?".

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

Пользователь, не обладающий правами администратора (локального или доменного), не сможет запустить инсталлятор. Контролируется самим инсталлятором. Соответственно изменение реестра контролируется самой службой IT.
Цитата
Более того, я лично знаю одо ГУП, где реестры систематически восстанавливаются из сохраненных копий и каждый раз, прийдя на работу пользователь садится за одну и ту же "нулевую" машину.

По меньшей мере глупо. Достаточно закрыть доступ к определенным веткам реестра и больше ничего. Я сильно подозреваю, что там просто отлажена и полностью интегрирована какая-то PDM-система. И соответственно вся работа выполняется в ней. Потому что иначе получится, что гендир имеет право на запуск AutoCAD'a, который ему, во-первых, нафиг не нужен, а, во-вторых, попросту не установлен у него на машине. Терминальный режим поддерживается далеко не всем имеющимся ПО.
Цитата
Как запустить твою равнялку "просто так"?

Открой файл функции равнялки и прочитай. Это не окончательный продукт!
---
Что должно быть (эх, черт, "САПР на базе" на работе оставил - а так бы процитировал напрямую оттуда) в программе, ее инсталляторе и "стартере". Без объяснения причин моего видения этого дела.
- Инсталлятор: один exe-шник, который сам, с контролем прав устанавливающего, выполняет распаковку файлов комплекса, прописывается в реестр (как минимум для возможности деинсталляции), регистрируется в AutoCAD либо в имеющиеся профили и рабочие пространства, либо создавая новый профиль.
- "Стартер": лисп, dvb или arx (неважно), который по заранее заданному ключу реестра отыскивает собственное местоположение, и проходит по всем подкаталогам, подгружая имеющиеся программные модули. Также проверяет и при необходимости модифицирует пути поддержки AutoCAD'a и (или) пути нахождения палитр инстументов. При наличии файла меню выполняет его загрузку (если оно уже не подгружено).
- Программа :
вариант 1 :основная работа выполняется через меню - как выпадающее, так и кнопочное (toolbar). Внутри кнопок прописаны готовые к употреблению макросы вида
Код
^C^C^P(defun c:abok() (do-some-function param1 param2 param3));abok;

Что позволяет выполнять повтор постоянно переопределяемой команды по правому клику мышой или пробелу. Вся "фоновая" работа выполняется в do-some-function - в том числе и отлов ошибок, и метки начала и окончания, и т.д.
---
Теперь самое страшное. Помимо самого комплекса и инсталлятора необходимо разработать и предоставить справку как минимум 2 видов:
- для пользователей (типа "чтобы получить а, нажми б")
- для разработчиков типа:
    * эта функция выполняет то-то и то-то; вызывает такие-то и такие-то функции; в качестве входящих параметров получает а, б, в; контроля соответствия параметров не выполняется; в случае успешного выполнения возвращает указатель на модифицированный объект; в случае ошибки - пустое (nil) значение. Исходный код: тра-ля-ля.
    * dll с именем <Бла-бла-бла> позволяет использовать при разработке внутри AutoCAD'a следующую команду (функцию / СОМ-сервер). Входящие параметры; в случае успеха / неудачи возвращает ...; скомпилировано с использованием Visual Studio 2002 + SP / Delphi 7.0 etc; исходный код: тру-ля-ля
Вариант "для разработчиков" особых трудностей не вызывает - достаточно предоставлять исходные коды (в полном объеме), прописывая внутри них комментарии по согласованному варианту. А вот для пользователей... Тут-то и кроется еще одна яма. Например, для "равнялки" примерный текст будет таковым:
Панель инструментов : ABOK_Blocks
Кнопка : <Вид кнопки>
Падающее меню : ABOK - Операции - Блоки и дин.блоки - Выровнять значения дин.блоков
Команда выполняет округление плавно изменяющихся значений динамических блоков (например, длины, угла поворота и тому подобное).
Окно настроек команды вызывается <...> и имеет следующий вид: <...>
Выполненные настройки сохраняются только в текущем файле AutoCAD'a. Настройки по умолчанию имеют следующий вид: <...>
Команда не имеет режима работы только в командной строке.
Выравнивание может быть выполнено:
- с округлением значения до ближайшего большего числа, кратного коэффициенту округления. Все значения округляются в сторону "+"
- с округлением значения до ближайшего меньшего числа, кратного коэффициенту округления. Все значения округляются в сторону "-"
- с округлением значения до ближайшего числа, кратного коэффициенту округления. Округление значений выполняется по стандартным законам.
Выравнивание может быть применено к обычным блокам. В таком случае выполняет выравнивание их коэффициентов масштабирования по каждому измерению. Если коэффициенты масштабов равны 1, блок исключается из обработки.
Выравнивание может быть выполнено как на указанной области, так и целиком для файла.
Из обработки исключаются внешние ссылки. При установке флажка <...> выполняется выравнивание для вложенных блоков. Выравнивание для блоков копирования-вставки и их состава выполняется обязательно.

А казалось бы, элементарная вещь...

Сообщение отредактировал kpblc - 4.10.2007, 21:57
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 5.10.2007, 9:51
Сообщение #405





Guest Forum






Сусанин - отдыхает.
Я твой ответ буду пережевывать аж до конца дня, наверное. Но не гарантирую, что и в конце дня я обрету дар речи. С твоей "равнялкой" видимо мне пока торопиться не следует.

VVA - АУ! А твое мнение услышать можно?, или я один должен во всем этом разбираться?

Знаешь Kpblc, есть выставки сюрреалистических скульптур. Это такие замысловатые конструкции из металла и прочего материала, которые крутятся, качаются, в общем чего-то делают. Внешне весьма впечатляющая картина, но полезной нагрузки эти монстры не несут никакой. Твое решение очень смахивает на такую скульптуру.
Я надеюсь, что ты не из любви к красоте сложных схем все это наваял, и под каждым шагом есть какое-то разумное обоснование. Аргументы типа
Цитата
Наверное, потому, что (getcfg) и (setcfg) мне просто не понравились
ты уж не обижайся - не катят.

Нужно подробно, шаг за шагом все аргументировать. Вырывая зубами у оппонентов признание "согласен" по каждому пункту.
Есть такой бородатый анекдот про Джо неуловимого. Я бы его немного добавил и сделал Джо - неуловимый и непобедимый. Если не знаешь - слушай (тобишь - читай).

Сидят пару ковбоев на веранде кабака и беседуют друг с другом, тут мимо них на худющей кляче проезжает такой же худющий ковбой. Один из этих двоих спрашивает друго "А кто это собственно такой поехал?" Ему его приятель отвечает "А, это Джо - неуловимый и непобедимый поехал" тот вздымает к верху брови и задает ответный вопрос "Это почему же?" и получает ответ "Да на хрена он кому-то нужен?".

Стать победителем можно только кого-то победив. И быть непобедимым еще не значит быть победителем.
Есть красота сложных схем, но есть также и величие примитива. Что более впечатляюще красота или величие?
.

Сообщение отредактировал Supermax - 5.10.2007, 10:27
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 5.10.2007, 12:38
Сообщение #406





Guest Forum






Из всего тобою Kpblc, выше сказанного я ставлю под сомнение следующее:
Цитата
Что должно быть (эх, черт, "САПР на базе" на работе оставил - а так бы процитировал напрямую оттуда) в программе, ее инсталляторе и "стартере". Без объяснения причин моего видения этого дела.
- Инсталлятор: один exe-шник, который сам, с контролем прав устанавливающего, выполняет распаковку файлов комплекса, прописывается в реестр (как минимум для возможности деинсталляции), регистрируется в AutoCAD либо в имеющиеся профили и рабочие пространства, либо создавая новый профиль.
- "Стартер": лисп, dvb или arx (неважно), который по заранее заданному ключу реестра отыскивает собственное местоположение, и проходит по всем подкаталогам, подгружая имеющиеся программные модули. Также проверяет и при необходимости модифицирует пути поддержки AutoCAD'a и (или) пути нахождения палитр инстументов. При наличии файла меню выполняет его загрузку (если оно уже не подгружено).

Это все надо разбить на части и обсудить.
Предлагаю начать с конца.
Есть функции "служебные" - поиск и исправление ошибок, проверки состояний и пр., есть функции "рабочие" - осуществление определенных намерений. Все они разложены по файлам, а файлы классифицированы и разложены по папкам. Папки имеют название, каждое из которых обозначает следующее:
arx - ?
arx\2002 - ?
arx\2005 - ?
arx\2006 - ?
arx\2007 - ?
arx\2008 - ?
lsp - ?
lsp\acad - ?
lsp\block - ?
lsp\block\attr - ?
lsp\block\attr\get - ?
lsp\block\dynprop - ?
lsp\block\dynprop\get - ?
lsp\block\dynprop-set - ?
lsp\conv - ?
lsp\conv\ent - ?
lsp\conv\list - ?
lsp\conv\selset - ?
lsp\conv\value - ?
lsp\dir - ?
lsp\dir\root - ?
lsp\dir\splash - ?
lsp\error -?
lsp\error\sysvar -?
lsp\eval -?
lsp\get - ?
lsp\get\ent - ?
lsp\get\ent\name - ?
lsp\get\layer - ?
lsp\get\low-level - ?
lsp\get\msg - ?
lsp\is - ?
lsp\is\dinprop - ?
lsp\is\ent - ?
lsp\is\ent\block - ?
lsp\is\ent\layer - ?
lsp\layer - ?
lsp\layer\low-level - ?
lsp\layer\status - ?
lsp\list - ?
lsp\progressbar - ?
lsp\progressbar\limited - ?
lsp\progressbar\low-level - ?
lsp\property - ?
lsp\property\get - ?
lsp\property\set - ?
lsp\string - ?
lsp\string\parser - ?
lsp\string\replase - ?
lsp\string\unformat - ?
lsp\sysvar - ?
vba - ?

Я о назначении мгого догадываюсь (очевидно) но просто общую картину решил не портить. Красота!
И в каждой папочке по кучке лиспиков и пр. Народ думает, что я зря шум поднял.
Kpblc, я понимаю сколько в ЭТО вложено мозгов. Я понимаю, что нужно практически все. Я понимаю, что создать макросы работающие по отдельности - означает дублировать в бешенном количестве множество функций. Но ты меня пойми тоже. работая над отдельным макросом, или пытаясь убедить в необходимости применять автоматизированный подход в работе и использовать при этом конкретный макрос - зависеть от ЭТОЙ библиотеки очень не хотелось бы. А если еще и инсталятор требуется и реестр Windows затрагивает - у меня шок!

А если еще учесть, что в каждом файле может быть не одна функция, а целая куча ... Так, я пошел пить кофе.

Сообщение отредактировал Supermax - 5.10.2007, 12:41
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 5.10.2007, 12:52
Сообщение #407





Guest Forum






Kpblc, ты учти, что народ "западает" на какую-то одну фишечку, ну две, ну максимум - три. Когда показываешь как равняются длины, народ говорит - да, это круто, когда показываешь как исчезают и появляются элементы модели - народ говорит - ну, это воаще!, когда показываеш как переименовываются блоки - народ дико вращает глазами и уже ничего сказать не может, но если народу, даже не объясняя показать 100 таких "фишечек" (а у тебя в архиве их не меньше) - народ поймет, что как медведь что-то проспал и спрячется под стол, чтобы не смотреть "в низ" с этой высоты.

А тут получается я не могу показать что-то одно. Или все, или ничего. Не у каждого человека здоровье может выдержать такое.

Сообщение отредактировал Supermax - 5.10.2007, 12:54
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 5.10.2007, 16:13
Сообщение #408


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Так ты и AutoCAD показываешь "либо все, либо ничего". Никто не запрещает тебе показать в меню одну-две-три кнопки. Остальная работа для конечного пользователя невидима и ему неинтересна.
"Рабочие" (то есть вызываемые) функции и команды можно хоть куда прописать, в том числе и напрямую в меню - кто запрещает-то?
P.S. Какой "народ думает"? Я ж только тебе и VVA присылал...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 5.10.2007, 17:09
Сообщение #409





Guest Forum






Народ читает тему и этот принципиальный спор. Ему не известно сколько и чего у кого есть. Я слежу за темой непрерывно. Почти из нее не выхожу (Интернет такой). На одном мониторе работаю, а на другой кошусь (или косюсь?). Вижу сколько и кто. Ты думаешь, что количество скрытых пользователей и гостей ни о чем не говорит?
Я ж не лиспы выложил, а только дерево набрал. К стати весьма устал при этом. Можешь его "слизать" и на досуге вопросики ответиками заменить.
Я не прочь основательно понять, что к чему и может быть в твоем древе появятся и мои желуди. Или это только для твоих лиспов и др. макросов?

Предлагаю выпускать макросы в двух вариантах 1. - твой, 2. - LT, то есть мой. Выпускаем 3-4 макроса LT, они "приманивают рыбку", а потом мы ее глушим твоим динамитом.

AutoCAD кстати вещь эволюционная и начинался он с кнопочек, размером со спичечную коробку, ну поменьше конечно, но не намного. Народ даже тогда из ступора не вылазил. А теперь конечно все в порядке вещей.
Я конечно за то, чтобы приборов и инструментов было побольше (не на планере летаем), но только чтобы приборчики эти и инструмент были самые, самые лучшие. Между выставкой работ одного художника и картинной галереей большая разница. Только большого поклонника таланта конкретного художника можно заставить стоять и рассматривать его работы. Только в картинной галерее художник понимает на сколько он крут. Я хочу чтобы у меня одна кнопочка была написана тобой (их уже три), другая - dimkin-ом, третья мною самим, четвертая еще кем-то. Если каждый из нас последует твоему примеру, а ты следуешь примеру разработчиков Windows, то начнется самое настоящее выхолащивание продуктивных решений. Что собственно и произошло со всей вычислительной техникой. Раньше и 64к. оперативки умели с толком использовать. У меня до сих пор под DOS есть Neopaint програмка для рисования. На одном мегабайте дискеты помещается вместе с кучей файлов gif, а по функционалу круче paint раз в 100. Надо было мозги раньше напрягать, чтобы уместиться в маленький ресурс, вот и писали проги на уровне гениальности, а теперь развернись моя душа! - да не выходит ни шиша! Повальное увлечение библиотечностью на столько раздуло объем прог, а функционал как был хреновенький, так и остался. Зато какая графика!
Очень трудно провести черту между объективной необходимостью и глобализмом, но вот "равнялка" VVA работает, а твоя у меня без того, чтобы я сделал так, как ты хочешь - нет. А ты хочешь, с моей точки зрения, очень много.

Сообщение отредактировал Supermax - 5.10.2007, 17:41
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 5.10.2007, 17:27
Сообщение #410


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Уже пора убегать, поэтому "кратенько".
В папках (правда, не во всех) есть файл типа folder.notes - в нем ответы на вопросы.
Ты в любой момент можешь добавить любой свой лисп. Самое главное - помести его в подкаталог lsp, чтоб он не мешался. Хотя и положив его рядом с загрузчиком, ты (пока) тоже ничего не потеряешь. VBA-макросы - в каталог vba; arx - в каталог arx. Также можно добавить каталоги vlx и fas, если считаешь нужным. При минимальной доработке загрузчика они тоже будут загружены в текущий файл. Последовательность загрузки сейчас непрогнозируема (хотя и можно отсортировать имена загружаемых файлов, только я этого не делал - в имеющейся схеме гарантированного несовпадения имен и функций это не надо).
Цитата
Предлагаю выпускать макросы в двух вариантах 1. - твой, 2. - LT, то есть мой. Выпускаем 3-4 макроса LT, они "приманивают рыбку", а потом мы ее глушим твоим динамитом.

Помрем. Вот ты веришь, что сейчас, занимаясь лиспом "по приведению файла из кривого конвертера ArchiCAD'a", я эту схему я уже раз 5 использовал? Клиенту понадобилось еще чего-то (всем примитивам внутри блоков присвоить ByBlock). Основная функция - строк 15. Все остальное - библиотека. Стоит начать собирать все воедино, хорошо если в 1000 строк уложишься. А асли понадобится что-то поменять? В твоем варианте надо шерстить полностью все эти собранные лиспы - по методике "библиотеки" меняется одна (!) функция, и эти изменения затрагивают все места, где она используется.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 5.10.2007, 17:56
Сообщение #411





Guest Forum






Цитата
меняется одна (!) функция, и эти изменения затрагивают все места, где она используется.

Палка о двух концах.
Двух одинаковых имен не должно быть, но это реализуемо, достаточно в имя функции вставить дату ее создания (ну к длинным именам тебе не привыкать). А вот как отражается работа функции на работу проги - вещь очень принципиальная. Ты под новые условия откорректировал функцию, а все свои лиспы проверил на ее адекватное поведение? Я например сталкивался с такими случаями, когда одна фукция испльзует временные переменные другой. Я очень часто этим пользуюсь. Ты конечно ответишь, что вот тогда надо такую связку вставлять в тело основной проги, а другие пусть будут библиотечными.
Библиотечная функция всегда где-то в чем-то избыточна, иначе она не подойдет сразу многим, а написать текст проги, в котором и большой диапазон возможностей и компактность исполнения сочетаются гармонически с моей стороны - кайф для программиста.

Сообщение отредактировал Supermax - 5.10.2007, 18:21
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 5.10.2007, 20:42
Сообщение #412





Guest Forum






Вот так, потихоньку и океан выпьем.
Возникла новая потребность.
Все знают, что аудит и рековер файлов не гарантирует их работоспособности. Очень часто проверка показывает 0 ошибок, а файл не хочет работать правильно. В таких случаях я включаю все слои, копирую в буфер все, что выделяется и в новом файле вставляю с исходными координатами. Помагает безотказно.

НО!

Когда модель содержит очень большое количество элементов сделать это оказывается очень трудно. Тем более если часть элементов выключена.

Значит надо перекачивать элементы из файла в файл программно. Назовем эту функцию Super_recover. rolleyes.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 5.10.2007, 21:29
Сообщение #413


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Если ты смотрел на файлы, то видел, что глобальных переменных там раз-два и обчелся. Передача данных идет через параметры. А они уже внутри анализируются.
"LT" & Co - вот скажи, тебе легче будет, если я попросту втупую буду компилить всю библиотеку в разные fas'ы, и их тебе (ну или не тебе) отдавать? Это ж теряются все преимущства OpenSource-проекта. Или ты его собираешься переводить на проприетарные рельсы?
Изменения в функционале на самом деле редкость. За последние полгода я изменил всего одну свою базовую функцию и на ее основе нарисовал несколько "с предустановками". На самом деле это не страшно wink.gif
Цитата
<...>написать текст проги, в котором и большой диапазон возможностей и компактность исполнения сочетаются гармонически с моей стороны<...>
нереально. Если большой функционал - как правило, неизбежен большой код. Компактный код - минимализм в масштабируемости. Если вдруг и то, и другое соблюдено, то, скорее всего, будут приличные потери памяти и (или) скорости выполнения. Исключения чрезвычайно редки - по крайней мере из того, что я видел.
Цитата
<...>аудит и рековер файлов не гарантирует <...> работоспособности <файла>

Если файл экспортирован в AutoCAD из внешнего приложения, ничего не поможет smile.gif Если из вертикального решения напрямую открыт - помочь нереально. Вся функция, кстати, сведется в конце концов к вызову _.wblock. Возможно, в activex-варианте.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 6.10.2007, 13:27
Сообщение #414





Guest Forum






Я не сторонник крайних позиций, таких как или туда, или сюда. Во всем есть плюсы и минусы. Надо подбирать так необходимый метод, чтобы это было оптимально. К сожалению многие (и я в частности) склонны к созданию себе тепличных условий и многое делается только для того, "чтобы потом не напрягаться". Труд, с моей точки зрения, по мере возможностей всегда должен быть творческим. Только внимательно все оценивая и заново осмысливая можно добиться совершенства. К сожалению требования рынка к количеству и скорости производства продукта не дают такую возможность.
Когда надо срочно, я и микроскопом гвозди забиваю, но когда есть возможность понять и даже где-то в чем-то отойти назад и заново все пересмотреть (к стати я обнаружил, что пастулаты выложенные в начале темы безбожно устарели), то я предпочитаю HI-END, а не HI-FI.
Все преимущества "OpenSource-проекта" умирают как только перед человеком становится факт, что если он хочет что-то изменить ему надо "впитать" в себя все, а это все, делалось не одним человеком и не один год. Посмотри на свое дерево. Тебе там все ясно, поскольку это ты написал, а мне надо, конечно не столько чтобы это сделать заново, но очень много времени, чтобы просто разобраться, а чтобы найти то, что я мог бы усовершенствовать - вообще даже представить не могу. Для чего люди демонстрируют открытые коды? - для того, чтобы преодолеть собственную "зашоренность", не пропустить ошибок, не использовать устаревших способов и т.п. Развитие других индивидуумов происходит только если они сами этого хотят. OpenSource нужны если автор хочет, чтобы его детище в дальнейшем развивалось и совершенствовалось. Не у всех есть силы чтобы это делать самостоятельно. Как скажи можно совершенствовать операционную систему Windows одному человеку, если ему только предстоит разобраться в ее устройстве. Одельный драйвер - пожалуйста. Целую систему - слабо! VVA выложил свою равнялку, я за пол часа в ней разобрался, запустил, проверил, нашел пару моментов, которые я попозже переделаю, а твою, для анализа которой мне надо отследить куда она это лезет и чего хочет - надо неделю потратить.
Желание что-то сделать - вещь очень хрупкая. Убить его - раз плюнуть. Когда ты вываливаешь на две страницы лисп, думаешь его тянет изучать? Есть такой строительный опыт - проще построить здание в чистом поле, чем снести, а потом построить в центре города, не смотря на то, что и коммуникации есть и все под рукой. Мне проще сесть и написать все заново, чем разбираться даже в собственных функциях годичной давности.
Это так сказать тот минус раздробленности и библиотечной упорядоченности, но плюсы тоже есть. Не будем считать плюсом возможность наращивать функционал быстро за счет библиотеки. Я это считаю крайней мерой и кривлюсь когда делаю. Плюсом можно считать то, что каждый маленький лисп, содержащий какую-то функцию можно быстро найти, рассмотреть и легко понять, но только, если он самодостаточен, или его "обвязка" не требует изучения "СНИП-ов" и "ГОСТ-ов".
При написании функционала в самодостаточном варианте можно пользоваться библиотекой как источником знаний, имплантируя ее функции в тело макроса. Можно и подгружать функции и из библиотеки, но только при условии, что эти функции настолько проверены и многократно усовершенствованы, что просто уникальны и не требуют больше совершенства. Как функции самого LISP-а (хотя не факт, что все они совершенны).

К сожалению Интернет меня разочаровал, конечно не он сам, а люди, которые в нем. Взять и сделать описание твоим функциям если собрать человек хотя бы 20 - 1 день. Но мы с тобою Kpblc, обречены на одиночество. Ты сам этим не займешся, поскольку тебе оно не надо. Я тоже предпочитаю у тебя спросить и закрыть локальную проблему локальным действием, после чего дела, дела. Так что OpenSource-проект это только красивые идеалистические мечты. Делают те, кто случайно выбран для этого судьбой.


P.S. Для выполнения моей задачи достаточно включить выбор всем элементам, даже тем, которые выключены. В этом могут помочь те самые грабли, на которые ты с dimkin-ом наступили. Только теперь не сбрасывать выбор надо, а наоборот. И у меня тут в мозгу что-то щелкнуло. Я пытался запустить внутреннюю ссылку включая ее ручки, а выбрать ее по человечески не удавалось. А тут получается есть выбор, но ручки выключены и видимость тоже. И в чем же этот выбор состоит?
Kpblc, колись! Что ты делаешь чтобы снять выбор? Что в элементе отвечает за принадлежность к набору выбора?
Если ты это откапаешь, я повешу твой портрет себе на стену и если ты приедешь в Москву - поведу в кабак.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 6.10.2007, 14:14
Сообщение #415


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Без особых проверок. Уж извини, но с использованием библиотеки. Прописывать весь код полностью - шансов нуль сейчас.
Код
; Через wblock
(defun hideobj (/ selset)
  (foreach item (_kpblc-conv-selset-to-vla (ssget))
    (_kpblc-property-set item 'visible :vlax-false)
    );_ end of foreach
  );_ end of defun

(defun showobj ()
  (vlax-for blk_def (vla-get-blocks *kpblc-activedoc*)
    (if (_kpblc-is-ent-space blk_def)
      (vlax-for item blk_def
        (_kpblc-property-set item 'visible :vlax-true)
        );_ end of vlax-for
      );_ end of if
    );_ end of vlax-for
  );_ end of defun

(defun try01 (/ selset)
  (_kpblc-error-catch
    (function
      (lambda (/ ss)
        (vla-clear (setq ss
                          (vla-item (vla-get-selectionsets *kpblc-activedoc*) "for_wblock")
                         );_ end of setq
                   );_ end of vla-clear
        (vla-delete ss)
        );_ end of lambda
      );_ end of function
    nil
    );_ end of _kpblc-error-catch
  (setq selset (vla-add (vla-get-selectionsets *kpblc-activedoc*) "for_wblock"))
  (vlax-for item (vla-get-modelspace *kpblc-activedoc*)
    (vla-additems
      selset
      (vlax-make-variant
        (vlax-safearray-fill
          (vlax-make-safearray vlax-vbobject '(0 . 0))
          (list item)
          );_ end of vlax-safearray-fill
        );_ end of vlax-make-variant
      );_ end of vla-AddItems
    );_ end of vlax-for
  (vla-wblock *kpblc-activedoc* "c:\\wblock.dwg" selset)
  );_ end of defun

Через CopyObjects не рисовал - может, к вечеру поближе..
P.S. hideobj и showobj - для собственной проверки корректного экспорта скрытых объектов wink.gif

Сообщение отредактировал kpblc - 6.10.2007, 14:30
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 6.10.2007, 17:13
Сообщение #416





Guest Forum






Kpblc, что-то не так. Все блоки, которые я сделал копируя твоим макросом, прописали в нуть себя еще один комплект элементов, но не тот, из которого был сделан этот блок, а тот, который был до его редактирования. То есть при восстановлении модели в блоки поверх элементов, что я установил легли старые элементы. Теперь у меня на каждой позиции по два экземляра одного и того же. И это в нутри блока. Такие блоки не хотят копироваться в буфер, хотя открываются редактором и изменяются.
Твой макрос я проверить не смог, он завязан на твою библиотеку, а я ее устанавливать не хочу. Переписывать все функции, цепляющиеся гирляндой одна за другую, у меня пока настроения нет. Подождем пока оно у меня появится.
Kpblc, ты Русский язык не забыл? Ты похоже тепрь только на Лиспе разговариваешь? Может для разминки мозгов пофилосовствушь немного?

Нет, некоторые копируются. Да, вот наглядный пример, что нельзя держать все яйца в одной карзине.

Сообщение отредактировал Supermax - 6.10.2007, 17:21
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 6.10.2007, 17:33
Сообщение #417


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



О-бра-зец! Я проверял на простых элементах.
P.S. Насчет философствования - попозже, к ночи поближе. Когда пивка попью и потянет пофлудить.

Сообщение отредактировал kpblc - 6.10.2007, 17:36
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 6.10.2007, 18:16
Сообщение #418


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Ну что поделать... Кстати, сообщи версию, обрабатывалось файло в "чистом" каде (в смысле - не в ADT / ABS / etc) или не совсем. Можешь в мыло кинуть, если светить не хочешь.
P.S. Можешь на посчту, 2 или 3 частями. Попробую выкачать. Хотя учитывая, что я сейчас дистриб Linux'a закачиваю, могу разобраться не сразу sad.gif

Сообщение отредактировал kpblc - 6.10.2007, 18:19
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 6.10.2007, 18:44
Сообщение #419





Guest Forum






Не, тут не в макросе дело, тут глюк такой специфический произошел. Макрос вроде работает правильно. Рековер этого файла тоже не причем. Кад у меня чистый без адоптаций и надстроек. Да я бы и "засветил", да боюсь мне администрация сайта за это тоже засветит. Сейчас частями по 10 мег. нарежу и тебе скину. Может у меня кофигурация када к чертям слетела? Попробуй аккуратненько включить все детали. У меня сразу кад слетает. Грузится долго. Включить все детали мне удалось только после того как я сохранил файл под 2004 форматом. Хочу посмотреть на те ряды, что выключенные были. Там тоже по много деталей на одном месте?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 6.10.2007, 18:54
Сообщение #420





Guest Forum






Да, с этим надо что-то делать. Я бы не сказал, что у меня слишком большая модель. Если ЭТО слишком много, то что говорить о больших объектах?

Уф, слава богу скрытые блоки не пострадали. Только те, что ты видишь, когда включаешь.
Не представляю как такое могло произойти, чтобы в блоке восстановилась старая версия компановки по верх новой?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

20 страниц V  « < 12 13 14 15 16 > » 
Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274




Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU

ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW

Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума






RSS Текстовая версия Сейчас: 5.8.2025, 18:53
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных