|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Дык ента... Я ж на аркаде несколько раз про это сказал! Сейчас запущу студию, посмотрю что там и как
![]() --- Добавлено: для лиспа вариант примерно таков: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 11.01.2008 в 11:54. |
|||
![]() |
|
||||
На первый взгляд, вроде ты функцию выбора файла пытаешся сделать, а почему тогда (defun test .....?
Ладно, проглотим, а почему такие странные переменные, и как запустить test без аргументов функции? И кому он без аргументов нужен? Функция - это функция. Она должна предоставлять максимально возможные параметры. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ну как почему - я ж решал задачу "показать как создавать СОМ-сервер и работать с ним из-под лиспа". А не нарисовать рабочую функцию
![]() Чтобы она работала, надо немного дольше посидеть, потестировать в разных вариантах ну и т.п. А у меня особо времени не было ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
У меня не открывается объект
MSComDlg.CommonDialog из библиотеки COMDLG32.OCX (во всяком случае так говорят, что от сюда) А в этом объекте есть множественный выбор файла. Библиотека эта у меня стоит и зарегестрирована, но ... http://forum.script-coding.info/viewtopic.php?id=64 вот от сюда эта малява. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
В ocx, насколько я помню, лежат контролы, то есть ActiveX-компоненты. Сами по себе они не работают никогда, их надо помещать на формы и вызывать уже оттуда (по крайней мере в подавляющем больщинстве случаев, как мне припоминается). То, что у них есть свойства и методы, ни о чем не говорит.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Не Kpblc, ты не прав оказался. Надо было всего лишь скачать из и-нета файл vb6controls.reg и два раза по нему щелкнув, ответить на запрос "записать в реестр или нет?" - да.
И все начинает работать. Объект - "MSComDlg.CommonDialog" Библиотека comdlg32.ocx Код:
Код:
Где взять описание не знаю. Как получить строку при окончании работы - не знаю (пока) Последний раз редактировалось Supermax, 12.01.2008 в 13:36. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ну не надо, не надо. У меня хватило мозгов на создание объекта CommonDialog из-под лиспа. И на установку ему свойств. Но! Этому объекту нельзя применить метод, например, ShowOpen. AutoCAD'ы 2005 и 2008 выдавали ошибку Automation.
Я интересовался этими и подобными вещами в VB6, поэтому и сказал #47.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
А ты сделай, как я написал и будет все как надо.
Поковырял объект InternetExplorer.Application там тоже можно сделать выбор файлов http://forum.script-coding.info/viewtopic.php?id=64 пост #4 посмотри, может у тебя получится по нему что-нибудь сделать. Цитата:
Последний раз редактировалось Supermax, 12.01.2008 в 16:03. |
||||
![]() |
|
||||
Вот все, что я смог найти на сегодняшний день.
MSComDlg.CommonDialog + UserAccounts.CommonDialog + SAFRCFileDlg.FileOpen ++ SAFRCFileDlg.FileSave Scripting.FileSystemObject ADODB.Connection InternetExplorer.Application Где стоит "+" - есть возможность многофайлового выбора Где стоит "++" - возвращает #<variant 19 1> Остальные ничего не возвращают полезного. |
||||
![]() |
|
||||
По поводу ShowOpen:
Скопируй всю мою писанину в командную строку и увидишь, что ShowOpen работает, но ничего не возвращает. Окно появляется, файлы выделяешь и фигу получаешь после нажатия OK. А как известно, функция vlax-invoke-method возвращает только то, что обусловлено методом. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Если нужна инфа по CommonDialog, могу попробовать "нарыть" из MSDN 98-го года выпуска - там оно было в более-менее виде. То, что есть сейчас в онлайн, не смотрел.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Периодически заглядываю в эту тему (думаю, что не только я) и кажется мне, что я наблюдаю вяло текущую шизофрению. Supermax, не обижайтесь, пожалуйста, только получается так: чем дальше в лес - тем больше дров. Проблемы громоздятся и просто жаль вас становится, а еще больше жаль Алексея. Одно только утешает, если можно так выразиться, - если Алексей Кулик поддерживает эту тему, то, наверное, видит какое-то рациональное зерно в ней. Смысл темы сейчас находится вне сферы моей компетентности, однако мыслится так: пока еще не найден надежно работающий механизм выбора файлов внешних ссылок для записи информации об них в файлы *.ini. А ведь в этих файлах еще надо записать информацию о том, что ПОСЛЕ вставки внешняя ссылка должна быть скопирована и, возможно, повернута с определенными параметрами. Не слишком ли сложна поставленная задача? Я это пишу не в плане критики, а в плане сопереживания. Что-то больше никто не высказывет своего мнения, даже очень опытные товарищи. Считают несерьёзной эту затею? Может, она действительно не до конца продумана, а с момента создания темы прошел уже месяц. Как бы с такими темпами вот это благое пожелание
Цитата:
![]() |
|||
![]() |
|
||||
Profan, спасибо за поддержку и сопереживание, но спешу тебя обрадовать, в посте Kpblc-а #24 выложен лисп xref-and-ini3.lsp в котором две функции,
одна - c:save-xref вторая - c:restore-xref Первая создает ini файл и записывает в него все параметры вставки внешних ссылок, на которые ты указал, а вторая - используя этот ini файл вставляет ссылки в новый файл, как правило заново открытый пустой. Можно было бы это сделать и на другой машине, но Kpblc упрямо не хочет выкинуть из ini файла путь к dwg файлу. Ну это я так, подкалываю. Все уже работает, но не до конца. "Починить" лисп Kpblc-a я и сам могу, но уперся в множественный выбор файлов. Нашел DLL-ку, в которой есть нужные функции, но там окно не растягивается, а это меня коробит. Да и есть на компе эти ... окна. Этих DLL-ок хоть ... жуй. Только где, что и как - я пытаюсь разобраться, а все, кто уже разобрался - помогать не спешат, поскольку нафиг это им надо? Вчера сервер замочил. Пытался в окне эксплорера запустить кад. Не охота за лиспом dll-ку таскать, хотя она того стоит, нет спору. Множественный выбор файлов нужен для того, чтобы выделив сразу много ini вставить в текущий файл все dwg ссылки из них. Черт с ним. ALLO, так и allo. На ней и остановимся. Появится что-нибудь лучше - поменяем. Вот такие вот пироги. |
||||
![]() |
|
||||
Kpblc, чтобы продолжить, или точнее закончить эпопею с этой прогой, надо оформить и утвердить функцию выбора файла, которой в библиотеке DWGRU еще нет. Да ивыбор папки тоже можно пересмотреть, если оставить Allosys.dll. Ты главный массовик-затейник, тебе и принимать решение.
Писать прогу без этой функции можно, я не против, но и ты выскажись по этому поводу. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Замечания приняты. Пауза до вечера (примерно до 23:00 Мск, вряд ли раньше). Функции оформлю и выложу на всеобщее освистание
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Поскольку возвращается список со строками, я написал следующую функцию для библиотеки:
Код:
Сюда надо добавить проверку на отсутствие в списке значений не являющимися строками и флаг, при значениях которого меняется тип возвращаемого значения: остатка списка, просто строки, номера найденной позиции и прочее. |
||||
![]() |
|
||||
Давно я не занимался этой проблемой, но у меня появилось очень много новых мыслей на счет самосоздания модели.
1. восстановим в умах читателей суть затеи. Кто не знает что такое Google Earth - очень сильно отстал от жизни. А для тех, кто знает, скажу - я собираюсь сделать тоже самое в Автокаде. Я собираюсь организовать бесконечную модель и написать программу, которая по ней ползает. К примеру модель целого города с точностью до фасок на гайках. 2. Структура базы с файлами модели выглядит так: Коренная папка, в ней DWG файлы внешних ссылок, одноименные файлы с расширением ini в которых указаны координаты вставки файлов внешних ссылок и если есть в файлах внешних ссылок свои внешние ссылки, то одноименные папки с аналогичным содержанием. Вместо файлов внешних ссылок могут быть файлы с интегрируемыми данными, в таком случае в ini файлах указываются координаты вставки и набор свойств (если после интеграции надо настраивать свойства блоков). 3. Перемещение по модели осуществляется так: Пространство модели очищается от любых элементов и в него по данным ini файлов интегрируется глобальная картина (верхний уровень внешних ссылок и/или интегрируемого хлама), приблежаетесь к объекту, клацаете по нем и он замещается набором объектов из состава ссылок в него входящих. Далее выбираете любой, который замещается еще более мелким содержимым и так до тех пор, пока не останутся одни интегрированные элементы, свойства которых вы сможете посмотреть в properties. 4. Движение из микро в макро и наоборот можно будет осуществлять как с очисткой глобальных планов, так и без. Kpblc, ты поучаствуешь? А то обещался убрать из своего макроса путь и до сих пор не убрал. |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос объектов во внешнюю ссылку | Supermax | AutoCAD | 3 | 09.12.2007 21:44 |
Не явный путь задания внешней ссылки | Елена | AutoCAD | 2 | 05.11.2004 00:21 |