перевести множество готовых файлов в другую СК

САПР и ГИС
Ответить
АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

перевести множество готовых файлов в другую СК

Сообщение АлексЮстасу » 22 авг 2013, 02:35

Можно назначить сразу целому множеству уже существующих файлов dwg нужную СК.
Есть ли способ создать другие dwg-файлы с другой СК из имеющегося множества dwg-файлов?
Это регулярно встречающаяся при создании многолистных планов-карт ситуация.

trir
Гуру
Сообщения: 5298
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: перевести множество готовых файлов в другую СК

Сообщение trir » 22 авг 2013, 04:32

Именно для таких целей сделали консольный AutoCAD
Один лист - один файл?

АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: перевести множество готовых файлов в другую СК

Сообщение АлексЮстасу » 22 авг 2013, 13:57

Э... "консольный Автокад" - это хто?
Да, один файл - один лист.
И переводить в другую СК файл в файл.

Аватара пользователя
bingeomap
Гуру
Сообщения: 503
Зарегистрирован: 06 июл 2012, 08:37
Репутация: 53
Откуда: Азербайджан, Баку

Re: перевести множество готовых файлов в другую СК

Сообщение bingeomap » 22 авг 2013, 15:14

А что такое "консольный AutoCAD"?
С уважением,
Биннат Халилов

trir
Гуру
Сообщения: 5298
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: перевести множество готовых файлов в другую СК

Сообщение trir » 22 авг 2013, 16:21


АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: перевести множество готовых файлов в другую СК

Сообщение АлексЮстасу » 22 авг 2013, 17:31

Правильно я по беглому знакомству предположу, это не для пользователей, а для программистов?

trir
Гуру
Сообщения: 5298
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: перевести множество готовых файлов в другую СК

Сообщение trir » 22 авг 2013, 18:03

Неа, это для ленивых пользователей. Если надо обработать кучу файлов - пишешь скрипт и так как консольный АкАд не грузит GUI, процесс происходит быстро!

АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: перевести множество готовых файлов в другую СК

Сообщение АлексЮстасу » 23 авг 2013, 00:06

Это уже реально? Кто-то что-то написал-сделал?
А сейчас способа для создания файлов с новой СК на основе набора файлов еще нет?

trir
Гуру
Сообщения: 5298
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: перевести множество готовых файлов в другую СК

Сообщение trir » 23 авг 2013, 08:17

http://www.cadforum.cz/cadforum_en/qaID.asp?tip=6544

Код: Выделить всё

(defun C:SetWGS ()  
(setvar "CMDDIA" 0)  
(command "ADESETCRDSYS" "_ses" "LL84" "_ex")  
(setvar "CMDDIA" 1)  
(princ)  
)  
Можно назначить сразу целому множеству уже существующих файлов dwg нужную СК.
можно
создать другие dwg-файлы с другой СК
Нужно только всё в "3_трансформация_координат_из_dwg_в_dwg" записать как скрипт...
Вложения
3_трансформация_координат_из_dwg_в_dwg.pdf
трансформация
(166.04 КБ) 947 скачиваний
gis_lab_scr1.JPG
назначить сразу целому множеству уже существующих файлов dwg нужную СК
gis_lab_scr1.JPG (26.32 КБ) 12559 просмотров

АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: перевести множество готовых файлов в другую СК

Сообщение АлексЮстасу » 23 авг 2013, 15:38

АлексЮстасу писал(а):Можно назначить сразу целому множеству уже существующих файлов dwg нужную СК.
Это был не вопрос, а утверждение :D
АлексЮстасу писал(а):Нужно только всё в "3_трансформация_координат_из_dwg_в_dwg" записать как скрипт...
Т.е. в самом Map такой сервис сейчас не реализован?
Тогда действительно "записать как скрипт...":
- открыть новый файл, назначить в нем нужную СК,
- подключить к нему старый файл с его СК,
- описать запрос к старому файлу с нужными параметрами, и выполнить его,
- отключить старый файл.
И сделать это для указанного набора существующих файлов с какой-то СК.
Только как это "записать как скрипт..." половчее реализовать?
Я сам только макросы пробовал писать.

trir
Гуру
Сообщения: 5298
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: перевести множество готовых файлов в другую СК

Сообщение trir » 23 авг 2013, 16:13

Это был не вопрос, а утверждение
А я, только сегодня заметил :cry:
Смотри
Для этого случая, скрипт будет выглядеть так:

Код: Выделить всё

-MapImport
MAPINFO
имя файла
Нет
С
У
Гидротехн_t
Д
С
С
Д
Код
В
В
сохраняешь как текстовый файл с расширением .scr и выполняешь командой "Пакет"

Переменные CMDDIA и FILEDIA надо выставить в 0

АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: перевести множество готовых файлов в другую СК

Сообщение АлексЮстасу » 23 авг 2013, 19:51

trir писал(а):сохраняешь как текстовый файл с расширением .scr и выполняешь командой "Пакет"
С Вашей бесценной подачи :D уперся, потерял очередную кучку нервов, но накропал:

Код: Выделить всё

CMDDIA
0
FILEDIA
0
_new
[i]Шаблон для нового файла.dwt[/i]
_MODEL
_ADESETCRDSYS
_s
[i]Код системы координат, в которую нужно трансформировать[/i]
_x
_ADEDRAWINGS
_at
[i]Подключаемый файл, который будет трансформирован.dwg[/i]
_x
_ADEQUERY
_c
_d
_l
_a
_x
_e
_d
_ADEDRAWINGS
_de
[i]Отключаемый подключенный файл.dwg[/i]
_x
_zoom
_e
_SAVEAS
2004
[i]Сохраняем куда нужно трансформированные данные с новым именем.dwg[/i]
CMDDIA
1
FILEDIA
1
Уф!
Но, увы, сообразил только для отдельного файла.
А как это сделать пакетно - для каждого файла из указанного их множества?
Нужно же какой-то цикл организовать, переменную для имени файла или т.п. (пардон за псевдопрограммизьм)?

trir
Гуру
Сообщения: 5298
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: перевести множество готовых файлов в другую СК

Сообщение trir » 23 авг 2013, 20:18

А как это сделать пакетно - для каждого файла из указанного их множества?
сам думаю...

Update1: В командной строке АкАд'а можно выполнять lisp-выражения, это же справедливо для пакетных файлов
Это значит, что

Код: Выделить всё

CMDDIA
0
можно заменить на

Код: Выделить всё

(setvar "CMDDIA" 0) 
А

Код: Выделить всё

_ADEQUERY
_c
_d
_l
_a
_x
_e
_d
На

Код: Выделить всё

(command "_ADEQUERY" "_c" "_d" "_l" "_a" "_x" "_e" "_d")
Это улучшает читабельность, а так же позволяет сделать такой финт ушами:

Код: Выделить всё

(setq Test_dwg "[i]Подключаемый файл, который будет трансформирован.dwg[/i]")
(command "_ADEDRAWINGS" "_at" Test_dwg "_x")
Причём "setq" можно вынести в другой пакетный файл и запускать из него первый...

АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: перевести множество готовых файлов в другую СК

Сообщение АлексЮстасу » 24 авг 2013, 01:56

trir писал(а):В командной строке АкАд'а можно выполнять lisp-выражения, это же справедливо для пакетных файлов
Это значит, что

Код: Выделить всё

CMDDIA
0
можно заменить на

Код: Выделить всё

(setvar "CMDDIA" 0) 
Это улучшает читабельность, а так же позволяет сделать такой финт ушами:

Код: Выделить всё

(setq Test_dwg "[i]Подключаемый файл, который будет трансформирован.dwg[/i]")
(command "_ADEDRAWINGS" "_at" Test_dwg "_x")
Причём "setq" можно вынести в другой пакетный файл и запускать из него первый...
Я не владею лиспом. Например, я не в курсе, можно ли "0" в первом лисп-выражении писать без кавычек? (Другие же параметры в кавычках?). И второй финт я пока не в состоянии оценить, и что, как и куда можно "вынести в пакетный файл".
По косвенным признакам мне кажется, что для не самого опытного программиста эта задача совсем несложная. (Но на всякий случай прошу у программистов пардону).

Да! Пути-названия файлов в скрипте нужно писать в кавычках - иначе пробелы в названиях папок или файлов будут препятствием. Но почему-то не все - на кавычки для названий подключаемых файлов выдается ошибка.

trir
Гуру
Сообщения: 5298
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: перевести множество готовых файлов в другую СК

Сообщение trir » 26 авг 2013, 10:53

Знать Lisp - очень полезно

Шаг №1

Код: Выделить всё

_qnew
(command "_ADESETCRDSYS" "с" "Pulkovo42.LL" "вЫход")
(command "-MapImport" "mapinfo" "D:\\work\\process\\objects\\1604\\Ирк._обл.таб\\Т_город_500.TAB" "Нет" "С" "У" "Т_город_500" "С" "Д" "Код" "Д" "С" "В" "В")
(command "_saveas" "2007" "D:\\work\\process\\objects\\1604\\dwg\\label\\Т_город_500.dwg")
Шаг №2

Код: Выделить всё

(setq layer_name "Т_город_500.TAB")
(setq path1 "D:\\work\\process\\objects\\1604\\Ирк._обл.таб\\")
(setq path2 "D:\\work\\process\\objects\\1604\\dwg\\label\\")
_qnew
(command "_ADESETCRDSYS" "с" "Pulkovo42.LL" "вЫход")
(command "-MapImport" "mapinfo" (strcat path1 layer_name) "Нет" "С" "У" "Т_город_500" "С" "Д" "Код" "Д" "С" "В" "В")
(command "_saveas" "2007" (strcat path2 layer_name))
Шаг №3

Код: Выделить всё

(defun cr_dwg (layer_name path1 path2 /)
	(command "_qnew")
	(command "_ADESETCRDSYS" "с" "Pulkovo42.LL" "вЫход")
	(command "-MapImport" "mapinfo" (strcat path1 layer_name ".TAB") "Нет" "С" "У" layer_name "С" "Д" "Код" "Д" "С" "В" "В")
	(command "_saveas" "2007" (strcat path2 layer_name ".TAB"))
)

Ответить

Вернуться в «AutoCAD Map 3D/Civil 3D»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость