Тема: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Можно ли создать или вызывать такое же окно , как любое виндовское окно типа Open , Save? Т.е. находясь в Автокаде вызывать с помощью командной строки программу которая выводила окно открытия текстого файла. Который потом можно было бы редактировать в Notepadе , например.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Командой Notepad можно открыть блокнот, а потом уже обычным методом открыть файл, если имя его неизвестно
Если имя есть можно сразу Notepad <ИМЯ>

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

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Можно получить полное имя файла с помощью функции (getfiled), которая изображает окно открытия файла, да еще и с предустановками вроде "какой тип файла искать будем", а потом вызывать любые программы с этим параметром.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

> VH
что то у меня не пашет ента функция

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

У меня работает
(getfiled "Открыть файл " "c:/" "txt" 8)

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

(getfiled "Выбери файл" "" "lsp" 0) вернула "C:\\Program Files\\AutoCAD2000\\Support\\3d.lsp", когда я в диалоговом окне под заголовком "Выбери файл" нырнул в каталог Support.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Слеповат стал getfeild набирал, Сорри

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Уважаемый Chaynik! А зачем вызывать системный текстовый редактор из командной строки Автокада и вообще причем здесь Лисп?
Сделай в нижней панели Windows кнопку с вызовом Notepad и работай. smile
А если действительно хочется открыть или создать какой-нибудь файл для обработки в Автокаде с использованием Лиспа, то можно, конечно, использовать функцию getfield. Но она возвращает только имя файла. Поэтому чтобы она запахала надо к ней приделать ноги: open, close и тд. А для того, чтобы вся схема заработала полностью надо писать прогу: чтение строки файла, передача в командную строку или диалоговое окно для использования, запись строки в файл. В общем дело это не совсем простое, но и не очень сложное. Однако Notepad здесь не при чем.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

У меня есть текстовые файлы с координатами точек и их номерами , т.е. первое число координата y , второе x , третье z и четвертое номер точки. Мне нужно построить эти точки в Акаде , причем чтобы открыть их мог любой пользователь , т.е. чтобы было просто и понятно. Т.е. я добавил в пункт меня Вставка свой пункт Построение точек  и по идее , когда я на нее нажимаю должно выскачить окно открытия файла , где надо найти свой текстовой файл и после нажатия на него на экране должны построиться точки и над ними должны стоять их порядковые номера. Во сколько и на меня одного! :)

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Правильно Вы действуете. Пол'учите имя файла из (getfiled), откроете его (open) и читайте точки (read-line), вытаскивайте координаты (read), стройте точки (entmake).
Тока причем тут чайники?

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Да, тут уже по уровню вопросов на самовар тянет ! или на TEFAL :)

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

А зачем тебе нужен тогда Notepad, ведь ты собираешься как я понял автоматизировать процесс? А как у тебя координаты попадают в текстовый файл? Если ты уже сделал сброс данных в файл с помощью getfield, то и вынимай их оттуда так же. Расскажи поподробнее, мб подскажем чего более конкретное.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

to shura-alex: в текстовый документ координатыточек и описание записывает прибор. И вот их как раз инадо нарисовать в Автокаде.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Т.е. из прибора координаты и описание точек записываются в *.txt файл из которого нужно их взять и нарисовать в Автокаде , а перед как нарисовать нужно не выходя из Автокада найти этот файл с помощью как раз этого окно (Open). Я просто думал , что может кто-то уже сталкивался с таким. Т.е. по идее есть *.txt файл его надо найти и взять оттуда точки инарисовать их. Может какая-нибудь программа , txt переводит в формат dxf ? У меня есть программа которая так работает в Excel. Т.е. там сделано две кнопки "Импорт" и "Перевод в dxf". Т.е. нажимаем импорт появляются 4 столбца и n строк , n равно числу точек и еще одна строка под описание выглядит так (x y z описание)
                                    (0 0 0  28)   
                                    (2 4 6  32)
Потом нажимаем перевод в dxf и программа формирует файл dxf с любым указанным именем. Потом выходим из Excel и находим dxf файл нажимаем на него 2 раза и вот точки нарисованы и над ними проставлены номера , т.е. описание. Вот можно ли сделать все это с помощью лиспа т.е. обходясь без Excel ? Вот вопрос! :)

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Просто может у кого-то была такая программа или что-нибудь похожее? :)

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Приведите пример строки из файла .TXT.
Кстати, номер точки куда запихивать (в виде текста рядом с точкой али в виде объектных данных...)?

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Конечно, можно без екселя. То есть без него даже проще намного. Вопрос в формате txt-файла - он должен быть известен. Ну, например, координаты каждой точки начинаются с новой строки. С помощью Read-line построчно формируем список точек в Лиспе и к каждой (или ко всем сразу, или еще как) применяем некую команду или функцию. Все зависит от того, как в этом файле расположены координаты и другая инфомация. И можно ли поменять этот порядок для удобства обработки на Лиспе.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Никакая программа не переводит произвольный текстовый файл в формат dxf, поскольку dxf - это тот же текстовый файл, но составленный по определенным правилам. А правила, по которым составлен Ваш .txt никому не известен.
Никаких notеpad, Excel и dxf-файлов для построения точек Вам не нужно. И форма строки большого значения не имеет. Лиспом можно обработать любую строку. Главное - считать строку, преобразовать ее и передать нужную форму на команду или функцию для построения точки и ее номера.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Итак, Chaynik, вы намерены обществу поведать, как выглядит строка в Вашем файле .TXT?

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Согласен с shura-alex
Любую строку можно считать лиспом и раздраконить ее
(я понимаю там координаты Y X Z номер_точки) он же писал
и открывать файл текстовым редактором не надо

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

to VH: строка из txt файла 20 48 64 32 , где первая цифра координата y , вторая x , третья цифра координата z и четвертая номер точки , который после того как точку нарисовали , должен стоять ввиде текста рядом с точкой , чуть выше.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Примерно что-то такое:
(setq path(getfiled "Открыть файл" "" "txt" 8))
(setq id(open path "r"))
(setq line(read-line id))
(close id)
(setq id nil)
(setq y (rtos(read line)2 2))
(setq x(rtos(read(substr line (+( strlen y)1)))2 2))
(setq z(rtos(read(substr line (+( strlen y)( strlen x)2)))2 2))
(setq p(rtos(read(substr line (+( strlen y)( strlen x)( strlen z)3)))2 2))
(setq koord (list(atof x)(atof y)(atof z)))
(command "_point" koord)
(setq koord-text(list(atof x)(+(atof y)3)(atof z)))
(command "text" koord-text "" "" p "" "")
Написал коряво, чтобы было понятно.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Спасибо надо попробовать!

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Это был вариант для ручного поиска и открытия файла. Если требуется автоматическое открытие всех нужных файлов, то создай файл (текстовый) с их именами в каждой строке.
Далее сделай findfile этого файла и чтение строки с именем файла с точкой. Далее действуй по приведенной ранее схеме (ручной), только без первой строки с getfiled.

Re: Можно ли с помощью Лиспа создать или вызвать графическое меню открывания файла

Огромное спасибо все отлично работает!!! Только точка рисуется одна , как мне сделать , чтобы он рисовал и остальные , координаты которых находятся на следующих строчках? Т.е. у меня как бы координаты и номер первой точки на первой строчке , второй на второй и т.д. что нужно добавить в программу чтобы читала нетолько первуюстрочку? Или может я чего не то делаю , хотя все вроде бы правильно. А вообще , конечно я обалдел такая короткая программа , а в ней сразу столько всего полезного! Класс!!! :)