Как прочитать текстовый файл в Компасе

Автор mkrz, 23.04.07, 09:35:09

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

mkrz

Есть текстовые файлы раскроя листа для установки плазменной резки в виде
+100-5000
-1500+4700
и т. д.
После первого знака + или - сдвиг по Х, после второго по У.
Хочу через библиотеку Компас открывать такой файл, построчно считывать
и отрисовывать в чертеже.
Пишу в Делфи. Компас 8+.
Если кто знает помогите.
Заранее благодарен.

Николай

Может так: Создать текстовый файл, используя синтаксис Компасовского символьного формата, присвоить ему
расширение .ksf и, прочитав его, получить чертёж в КОМПАСе.Мне так удавалось создавать примитивные изображения.

Gek

Имхо, другой подход нужен.
Как, например, я организовал чтение из файла P-Cad 200X геометрии корпусов.
Сначала работа проги вообще не привязана к Компасу. Пишем модуль, препарирующий исходный файл строчка за строчкой и складывающий координаты в массив. Предпочтительно делать в таком порядке, поскольку могут понадобиться какие-то глобальные операции над всем массивом - сдвиг, масштабирование и т п.
Затем подготовленный массив элемент за элементом начинаем отрисовывать.
Это скелет идеи. Если нужно "мясо", уточните  :-)))

mkrz

Сообщение для Gek.
Как прочитать текстовый файл средствами Компас я не знаю. Я могу прочитать текстовый файл средствами Делфи, но когда я запускаю такую библиотеку в Компасе то Компас просто сворачивается и все. Может я что-то не правильно делаю. Например даже простой вывод сообщения средствами Делфи типа showmessage ('привет'); в откомпилированном виде (в библиотеке rtw) при запуске сразу сворачивает Компас. Где собака зарыта?

mkrz

Сообщение для Николая.
Текстовый файл уже создан и имеет расширение esi. По составу он соответствует dos-файлу с расширением txt, т. е. никаких дополнительных управляющих символов нет. Это строго. А вообще у меня идея была как у Gek: считать в массив и затем отрисовать в Компас. Проблема считать.

Gek

mkrz
Покажите текст модуля, которым выводите "Привет"

mkrz

Сообщение для Gek.
Файл модуля я направил по электронной почте. Еще вопрос. Возможно ли создать обычное приложение в Делфи с расширением .exe через которое я бы мог управлять
Компасом? Тогда бы текстовый файл я считал обычными средствами Делфи и все прорисовал в Компасе.

Nesh

Цитата: mkrz от 25.04.07, 09:43:47
Возможно ли создать обычное приложение в Делфи с расширением .exe через которое я бы мог управлять
Компасом? Тогда бы текстовый файл я считал обычными средствами Делфи и все прорисовал в Компасе.

Да возможно, через ActiveX. Но в делфі при компиляции примера выдает ошибку.
Можно написать библиотеку rtw, передать управление на форму, а ее атрибутами записать в массив с файла(можно txt) значения, и передать управление назад в компас уже с массивом данных, и отрисовать нужную полиформу, или  сохранть в esi или ksf. Если интересует пример, пишите на мыло.

Gek

Цитата: Nesh от 25.04.07, 14:14:32
Цитата: mkrz от 25.04.07, 09:43:47
Возможно ли создать обычное приложение в Делфи с расширением .exe через которое я бы мог управлять
Компасом? Тогда бы текстовый файл я считал обычными средствами Делфи и все прорисовал в Компасе.

Да возможно, через ActiveX. Но в делфі при компиляции примера выдает ошибку.
Можно написать библиотеку rtw, передать управление на форму, а ее атрибутами записать в массив с файла(можно txt) значения, и передать управление назад в компас уже с массивом данных, и отрисовать нужную полиформу, или  сохранть в esi или ksf. Если интересует пример, пишите на мыло.

Не надо никаких ActiveX. В SDK есть пример создания контроллера - это и есть самостоятельный exe файл. Все работает, проверено

mkrz

Спасибо всем кто отвечал.
Покопался в форуме и нашел пример управления Компасом из Делфи. Если кому интересно могу выслать на электронную почту.
Хотелось бы конечно разобраться почему это не работает в rtw библиотеке. Gek, не смотрел мой модуль?

yarikv


Gek

Посмотрел модуль. Разумеется, нельзя выводить текст в Компасе средствами Дельфи

showmessage ('привет');

А вот командой ksMessage можно и нужно. Точно так же и организация ввода данных идет только средствами Компаса.


yarikv

почему ж нельзя то. все можно. вот пример

Gek

Да, и правда работает. Извиняйте, наврал  :shu:
mkrz, Вам нужно тогда расположить ShowMessage после создания KompasObject

mkrz

Спасибо за ответы. Еще вопрос. Делаю обычное приложение в Делфи, создаю в форме OleConteiner, свойство Align задаю alClien и вывожу в него чертеж Компаса. При запуске открывает чертеж, но не могу добиться чтобы было меню Компас. Если через этот OleConteiner выводить например файлы Excel или Word то открывается с меню этого приложения. Может кто знает в чем ошибка?

Администратор

Ошибка в том, что Вы задаете вопрос не по теме.

Для нового вопроса создавайте, пожалуйста, новую тему.

Спасибо за понимание.