Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Помогу бесплатно разработать любую программу на autolisp.

Тема в разделе "Autodesk", создана пользователем Германup, 3 фев 2014.

  1. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Krovlaf, программа csv2dwg01.fas производит обратную операцию. Считывает отредактированные в Excel данные из файла с расширением csv и запихивает их в атрибуты найденных по меткам (handle) блоков в чертеже. Программа требует тщательного тестирования с разными геологическими блоками-выработками.
     

    Вложения:

    • csv2dwg01.zip
      Размер файла:
      1,8 КБ
      Просмотров:
      8
    #141
    Последнее редактирование: 19 окт 2014
  2. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Krovlaf, программа PoiskGeovirabotki.vlx ищет в чертеже геовыработку по номеру строки в листе Excel.
    Порядок работы: Открыть лист в Excel, загрузить чертеж, запустить программу PoiskGeovirabotki.vlx.
    На запрос программы набрать номер строки листа Excel. Горная выработка находящаяся в этой строке будет найдена в файле dwg по метке находящейся в колонке К листа Excel. Выработка будет рассположена в центре рабочей области автокада и к ней будет тянутья от курсора пунктирная линия. Можно пользоваться зумом и перемещением, пунктирная линия будет указывать на цент вставки блока-выработки. Для окончания работы программы нажать правую кнопку мыши или Enter.
     

    Вложения:

    #142
    Последнее редактирование: 20 окт 2014
  3. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    Оффтоп
    Подпишусь под каждым словом!
    Я всего лишь хотел сказать, что для того чтобы заполнить или изменить даже 100 атрибутов в блоках, их гораздо проще и быстрее забить в Екселе а потом вставить в блоки средствами импорта. Вообще числа быстрее вводить в таблице - минимум движений. У нас немного разные задачи. Мне по роду деятельности приходится постоянно оцифровывать бумагу в цифру. И как правило цифры на бумаге очень много ::laugh24.gif:: (каламбур)

    Всем Привет!
    Немного попробовал программку.
    1. Экспорт работает. Ошибок не было.
    2. К делу в общем не относится, но. У меня не открылся Ваш чертеж (с первого раза). Кад вылетел с ошибкой. Там в чертеже следы от Геоникса, пришлось этим удалять прокси.
    3. Давайте сделаем универсальную программу, для любых блоков с атрибутами. Для этого:
    В получаемом csv можно убрать первую строку с "Объект___",
    Если можно, то экспортировать имена атрибутов из блоков в таблицу. Таблицу оставить в таком виде - HANDLE | BLOCKNAME | (столбцы с тэгами атрибутов)|. Первые два столбца - "служебные", их логичней в начало поставить. В итоге получаем универсальный инструмент на все случаи жизни.
    4. Атрибуты вставляются в файл в прядке создания блоков. Очень часто бывает, что в линии некоторые блоки заменены или вставлены не последовательно и не имеют нумерации в атрибутах - пиши пропало, никогда не узнаешь из таблицы что за чем идет. Принципиальный вопрос №1 - можно ли экспортировать блоки в таблицу отсортированными по линии выбора (что заменит сортировку по оси Y, по оси Х, или как нибудь еще). Два способа выбора блоков - рамкой (когда знаешь что все ОК) и вдоль линии выбора (есть ведь такая функция в команде _select - _f).
    5. Теперь с csv. С ним работать нельзя, надо переводить все по столбцам. Данные - текст по столбцам - готово. (при этом важно столбцу идентификатора задать текстовый формат а то переворачивает 71E8 в 7100000000). А вот обратно в csv как? Сохранить как - не катит. Как были данные в столбцах так и остаются. На этом и споткнулся. Может я что-то не знаю или не так делаю?
     
    #143
  4. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Krovlaf, отвечаю согласно ваших пунктов:
    2. Геониксом вроде не пользуюсь, прокси могли возникнуть при конвертации из вашей версии acad 2007 в acad2002 в котором я работаю.
    Вам версия чертежа для асад2000 не нужна, Вы можете пользовать вашу оригинальную версию.
    3. Для того, что бы попробовать создать "универсальную" программу, пожалуйста создайте вручную образцы чертежа и файла Excel.
    4. Линией выбора вполне надежно может служить полилиния проходящая через блоки. При этом каждая вершина полилинии должна совпадать с центром вставки блока. Количество вершин (включая начало и конец) должно строго соответствовать количеству блоков (промежуточные вершины не допустимы). Направление рисовки полилинии будет направлением выбора блоков.
    5. Да, двойной щелчок не катит. Excel "умничает", да и в Windows указан региональный разделитель - запятая. Нужно грузить csv через импорт.
    В Excel - Данные->Импорт внешних данных->Импортировать данные, загружаем файл csv , далее выбираем - с разделителями, далее ставим галку - точка с запятой, далее меняем формат стобцов на текстовый (можно все выделить через Shift), далее - имеющийся лист - нажимаем OK.
    После редактирования файл можно просто сохранить в формате csv.
     
    #144
    Последнее редактирование: 19 окт 2014
  5. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.567
    Симпатии:
    2.092
    Адрес:
    Москва
    При открытии файла задать типы файлов как txt, затем в окне ввода имени файла ввести *.* (после чего нажать Enter), потом выбрать файл csv.
     
    #145
  6. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    У меня получилось закачать файл csv в Excel через импорт, задав там текстовый формат. Предыдущий пост подправил.
     
    #146
  7. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.970
    Симпатии:
    694
    Адрес:
    Маськва
    Krovlaf
    , в подробностях в задачу не въехал, т.к. много постов :)
    Как вариант - попробовать действовать средствами Map. Через его экспорт-импорт: _MAPEXPORT, _MAPIMPORT. В mif/mid, т.к. в текстовые файлы mid можно выгружать содержание атрибутов блоков. Открывать и редактировать mid в Excel. Или даже просто в блокноте - если достаточно. Потом импортировать в dwg, получая блоки с уже измененными/дополненными атрибутами.
    В принципе, при импорте можно автоматом загружать не только атрибуты, но и создавать при блоках Object Data с аналогичными полями.
    Т.е. базу данных можно сначала автоматом создать, а потом вести в Object Data. Надписи при блоках вместо атрибутов можно создавать в любой нужный момент с помощью Диспетчера отображения - создания текстовых стилей.
    Соответственно, можно обойтись блоками без атрибутов, т.е. простыми блоками - файлы полегче.
     
    #147
  8. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    Задача подробно описана в #121, #124, #131.
    Я снимаю шляпу перед людьми, которые с MapInfo на ты. В ГИС информацией жонглируют как в цирке. Я когда-то несколько раз пробовал пробить эту стену головой - не сложилось. Поступают изредка задачи по импорту из Акада в Мэп. Кое как и с помощью бубнов справлялся. Так что если и займусь обменом инфой через сторонние программы, то Мэпинфо будет после Цивила и 3дмэпа. Здесь нужен легкий инструмент на базовом Каде "для всех".
    По тесту:
    О чудо! csv открываются как надо! Все "по полочкам". "Входит, Замечательно выходит!" (ослик ИА). При этом не надо даже закрывать Ексель! Достаточно сохранить изменения и импорт данных в Кад работает!
    Наблюдения:
    Я так понял, что "во время сеанса" нельзя удалить csv файл. Он занят dwg файлом.
    Замечания:
    При экспорте по умолчанию создается файл test.csv. Он каждый раз перезаписывает предыдущий файл не запрашивая перезаписи. Я так понимаю, это тестовая версия, и в дальнейшем можно будет самому обзывать создаваемые файлы?
    Столбец МеткаDWG имеет числовой формат, и при открытии файла все идентификаторы с буквой "Е" срываются в числа. При этом все атрибуты расположенные ниже "оцифрованного" значения handl не обновляют внесенные изменения. Грубо говоря, работает только часть таблицы до измененного идентификатора. Как это исправить? Может в Екселе чего подкрутить?::-ph34r.gif::
    На пути к универсальности.
    Можно ли так сделать?
    1.
    2. Программа извлекает из блоков параметры handl, blockname и записывает их соответственно в первый и второй столбец таблицы файла csv.
    все имеющиеся в нем атрибуты в порядке следования и записываются в соответствующие столбцы с тэгами. Извиняюсь за сумбур и ошибки. Образец экселевского файла прилагаю. Ну а двж старый подойдет?
    Выделение блоков по линии.
    А можно ли построить эту полилинию с помощью лиспа, который мог использовать уже имеющуюся полилинию пересекающую нужные блоки или команду _select_f? Думаю, что это вполне логичный инструмент выделения в этой программе.
    Большое Спасибо за уже проделанную работу, за потраченное время!
     

    Вложения:

    #148
  9. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.970
    Симпатии:
    694
    Адрес:
    Маськва
    Еще раз пардон, если не к месту или если Map 3d недоступен.
    MapInfo и пр. ГИС запускать не нужно. _MAPEXPORT создает файлы mif (геометрия) и mid (семантика) - чисто текстовые файлы с прозрачной структурой. В mid у Вас окажется только содержание всех выгружаемых атрибутов в виде текста через запятую.
    Открываете mid сразу в Excel или даже в блокноте, и редактируете как нужно. После этого _MAPIMPORT'ом загружаете эти измененные данные в dwg.
     
    #149
    Последнее редактирование: 20 окт 2014
    flareon нравится это.
  10. flareon

    Форумчанин

    Регистрация:
    20 дек 2009
    Сообщения:
    257
    Симпатии:
    98
    Адрес:
    г.Калининград, Россия
    А надо в экселе что-то хитрое сделать для открытия? А открывается пустой лист
     
    #150
  11. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.970
    Симпатии:
    694
    Адрес:
    Маськва
    Блокнотом mid открывается не пустым? Тогда в эксельл просто Открыть, указываете все типы файлов, при выборе mid появится мастер импорта текстов и т.д.
    Ваш mid в блокноте выглядит как в приложении - никаких ГИС использовать не нужно.
     

    Вложения:

    #151
  12. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Вы очевидно при импорте не поменяли формат для столбца МеткаDWG на текстовый. Надо было воспользоваться полосой прокрутки.
    Опцию выбора _F Вы можете использовать при выборе в программе (впрочем как и все другие опции).
    Полилинию соединяющую центры вставок блоков нужно строить вручную или же на моменте сколки использовать специально для этого написанную программку.
    Прикладываю доработанные программы.
     

    Вложения:

    • Geo201014.ZIP
      Размер файла:
      4,4 КБ
      Просмотров:
      12
    #152
    Последнее редактирование: 20 окт 2014
  13. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    Приветствую!
    Я даже не импортировал. Я просто открыл csv двойным кликом. Естественно что все данные представлены были в общем формате и идентификаторы с Е слетели в числа. Сейчас попробовал импорт данных с настройкой 1 столбца как текст - все в порядке. Попробую убрать в Экселе отображения чисел в экспоненциальном формате. Тогда и импорт не понадобится. Поспрашиваю на форумах, может чего и найду.
    Спасибо большое за совет! Действительно, атрибуты блоков выбранных _f функцией вставляются в csv в порядке выбора блоков. Не надо строить никаких полилиний!
    Перестала работать программа PoiskGeoviraboki03, как новая версия так и старая.
    Можно ли узнать команды запуска программ. Надо кнопки к ним сделать.
    Крайний вопрос.
    В последнем варианте экспорта файла csv надо убрать ячейку "Объект".
    Можно ли сделать экспорт csv2dwg так, чтобы постоянными оставались только два первых столбца - Метка DWG и Имя блока, а тэги атрибутов брались не из файла - образца, а из выделенных блоков?
    PS Куда сказать "Спасибо"? (реквизиты)
     
    #153
  14. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Если сумеешь это дело побороть, обязательно отпишись. Мне сие то же может пригодиться.
    Вторую строку в экселе то же убрать, или оставить первую и вторую ячейки?
    В следующей версии поставлю "быстрый" перезапуск.
    В заголовке темы все написано.::drink1.gif::
     
    #154
    Последнее редактирование: 21 окт 2014
  15. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    Ничего лишнего. Только шапка таблицы и данные. Ячейка А1 - "МеткаDWG". Думаю, заголовки столбцов должны браться из свойств выбираемых блоков. Как и теги атрибутов. Это все к вопросу об универсальности программы. Завтра ее увидит маркшейдер, послезавтра электрик, а после-после завтра архитектору понравится.
    Коль вопрос корректного выбора блоков (по порядочку) успешно решен, можно ли запрос на выбор блоков сделать в двух вариантах - выбрать блоки рамкой и выбрать блоки секущей линией?
    И вот еще старая история с динамическими блоками. Имена динамических блоков экспортируемые в файл становятся как у неименованных блоков (*U12, *U13, *U14, и т.д.). Я так понимаю, что у тебя Акад 2002 и динамики тогда небыло. Решить проблему корректного импорта имен на базе старой версии нельзя. Надо будет на кадовских форумах прояснить этот вопрос.
    Вот, не могу я так! Эта программка для меня как хороший нож. А хорошие ножи не дарят!
    --- Сообщения объединены, 21 окт 2014, Оригинальное время сообщения: 21 окт 2014 ---
    Ничего лишнего. Только шапка таблицы и данные. Ячейка А1 - "МеткаDWG". Думаю, заголовки столбцов должны браться из свойств выбираемых блоков. Как и теги атрибутов. Это все к вопросу об универсальности программы. Завтра ее увидит маркшейдер, послезавтра электрик, а после-после завтра архитектору понравится.
    Коль вопрос корректного выбора блоков (по порядочку) успешно решен, можно ли запрос на выбор блоков сделать в двух вариантах - выбрать блоки рамкой и выбрать блоки секущей линией?
    И вот еще старая история с динамическими блоками. Имена динамических блоков экспортируемые в файл становятся как у неименованных блоков (*U12, *U13, *U14, и т.д.). Я так понимаю, что у тебя Акад 2002 и динамики тогда небыло. Решить проблему корректного импорта имен на базе старой версии нельзя. Надо будет на кадовских форумах прояснить этот вопрос.
    Вот, не могу я так! Эта программка для меня как хороший нож. А хорошие ножи не дарят!
     
    #155
  16. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    Были проблемы со связью. Сообщение продублировалось.
    По программе.
    На работе организована доменная сеть с общим серваком. В каде было открыто несколько файлов, несколько окон. Пробую экспорт - проходит сообщение об успешном завершении, а в папке с рабочим файлом свежего csv нет... Начинаю искать - поиск не находит... Закрываю все лишние окна и папки. Экспортирую заново - файла в папке нет. Пробую на тестовом чертеже (он на рабочем столе) - все ок. Экспорт не корректно работает по сети.
     
    #156
  17. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Программу поиска PoiskGeovirabotki03.fas проверил. Ищет геовыработки по файлу загруженному в Excel и созданному программой dwg2csv03.fas вроде нормально. Перед запуском программы PoiskGeovirabotki03.fas Excel должен быть запущен и в него загружен файл с выработками.
    В программе dwg2csv03.fas можно к названию файла добавлять путь куда этот фай сохранять. Например: d:\имя_папки\имя_сохраняемого_файла.
    Правда пробелы в названии папки и файла в данной версии программы не допустимы. В следующей версии попробую сие ограничение исправить.
    Для возможности пользовать двойной щелчок для загрузки csv, добавлю к меткеDWG в начало знак подчеркивания. Это заставит Excel определять меткуDWG как текст.
    Для корректной работы с числовым разделителем в виде точки, нужно в єкселе в меню Данные->Параметры->Международные выбрать в окошке Разделитель целой и дробной части - точка и снять галку в окошке - Использовать системные разделители.
     
    #157
    Последнее редактирование: 21 окт 2014
  18. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    PoiskGeovirabotki03.fas ведет себя как то странно. Мои действия: Открываю чертеж, запускаю dwg2csv03, открываю полученный файл. Вношу изменения, сохраняю файл, перехожу опять в чертеж, запускаю csv2dwg02, проверяю работу программы. Все сделано верно.
    Запускаю PoiskGeovirabotki03 - ноль эмоций.
    В командной строке наблюдаю:
    Команда: (LOAD "C:/Users/Ghost/Desktop/Программа/PoiskGeoviraboki03.fas")
    Команда:
    После танцев с бубном выясняю: Поиск начинает работать после запуска старой программы PoiskGeoviraboki.VLX. Старая команда запускается, но результатов не выдает. Затем опять пуск PoiskGeoviraboki03 наконец удачный, с результатами.
    История камлания в летописи командной строки:
    Команда: (LOAD "C:/Users/Ghost/Desktop/Программа/PoiskGeoviraboki03.fas") ::tongue24.gif::
    Команда:
    Команда: (LOAD "C:/Users/Ghost/Desktop/Программа/PoiskGeoviraboki.VLX")
    Copyright © 2002-2003, BSV & Company serjb_lg@mail.ru
    Copyright © 2002-2003, BSV & Company serjb_lg@mail.ru
    Поиск геовыработки по МеткеDWG
    Лист в Excel должен быть открыт!!!
    Наберите номер строки Exel = 5::tongue24.gif::

    Команда:
    Команда: (LOAD "C:/Users/Ghost/Desktop/Программа/PoiskGeoviraboki03.fas")
    Copyright © 2002-2003, BSV & Company serjb_lg@mail.ru
    v03 Поиск геовыработки по МеткеDWG
    Лист в Excel должен быть открыт!!!
    Наберите номер строки Exel = 5

    <Enter> или правая кнопка мыши - выход::hi::
    nil


    В случаях когда надо прописывать пути к нужной папке, я как образцово-среднестатистический юзер, сначала копирую адрес из нужной папки а потом вставляю в строку сохранения/открытия. Под страхом казни не заставишь писать адрес ручками! Так что не надо исправлять ограничения. А если вывести диалоговое окно сохранения файла?
    Я тут самовольно тему на двж.ру создал по проблеме формата в scv. Нехорошо, конечно, от чужого лица выступать. Но это от неуемного желания помочь делу. Ака Ривилис советует метку в кавычки взять.
    Ну, это я делаю сразу на всех Экселях какие попадаются под руку... Точнее сразу Винду под это настраиваю. Привычка уже.
     
    #158
  19. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Krovlaf, да, моя вина, вместо vlx отправил Вам fas.
    Прикладываю файл PoiskGeovirabotki.vlx.
    Добавлена команда 11 (одиннадцать) перезапуска программы. Повторный запуск программы можно произвести набрав на цифровой клавиатуре 11 и нажав Enter.
    Последующие идущие подряд перезапуски программы можно производить просто нажатием Enter или клавиши пробела.
    Если метку брать в двойные кавычки, как советует Ривилис, в экселе справа от метки остаются две кавычки. Вы можете сами это легко проверить записав метку в двойных кавычках в файл csv и закачав это дело в эксель.
    Совет работать на прямую с єксель по СОМ интерфейсу неприемлем, в виду медленной работы сего дела с большими массивами данных. А вот программа PoiskGeovirabotki.vlx использует COM интерфейс, бо она оперирует всего с одним значением.
     

    Вложения:

    #159
    Последнее редактирование: 22 окт 2014
  20. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    Ок. Понятно.
    Поиск прекрасно работает, спасибо. Перезапуск удобная штука. Сейчас какие-то спорные моменты в данных легко можно найти на чертеже. А в таблице экселя, все "аномалии" искать гораздо проще.
    Опять странности...
    На работе (Acad 2010, Office2003) Только что созданный файл csv открывается сразу как обычный xls (данные по столбцам). Процесс экспорта/импорта проходят без замечаний.
    Дома, только что. (Acad2008, Office2003). Созданный экспортом файл csv открывается штатно (данные с разделителями - запятыми) При импорте данных в табличный режим и сохранении файла как csv импорт не работает.
    Комстрока:
    Команда:
    Команда: (LOAD "C:/Documents and Settings/Администратор/Рабочий стол/План
    разведочных работ/csv2dwg02.fas")
    *
    Загрузка геол. выработок в атрибуты блоков автор: Семенов И.И. (ivsem);
    ошибка: В функции *error* возникла ошибка:Настройка переменной AutoCAD
    отвергнута: "CMDECHO" nil
    Импорт из обычного файла scv (разделители - запятые) проходит без замечаний.
    В чем причина столь разного поведения на разных машинах?
    --- Сообщения объединены, 22 окт 2014, Оригинальное время сообщения: 22 окт 2014 ---
    Извиняюсь, вопрос снимается. Совсем забыл про разделитель элементов списка ";" в системных настройках!
    --- Сообщения объединены, 22 окт 2014 ---
    Да и с выделением блоков по секущей линии разобрался. Сделал "складную" панель кнопок с функциями выбора.::cool24.gif::
     
    #160

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление