Страница 1 из 1
					
				перевести множество готовых файлов в другую СК
				Добавлено: 22 авг 2013, 02:35
				 АлексЮстасу
				Можно назначить сразу целому множеству уже существующих файлов dwg нужную СК. 
Есть ли способ создать другие dwg-файлы с другой СК из имеющегося множества dwg-файлов?
Это регулярно встречающаяся при создании многолистных планов-карт ситуация.
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 22 авг 2013, 04:32
				 trir
				Именно для таких целей сделали консольный AutoCAD
Один лист - один файл?
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 22 авг 2013, 13:57
				 АлексЮстасу
				Э... "консольный Автокад" - это хто?
Да, один файл - один лист.
И переводить в другую СК файл в файл.
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 22 авг 2013, 15:14
				 bingeomap
				А что такое "консольный AutoCAD"?
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 22 авг 2013, 16:21
				 trir
				
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 22 авг 2013, 17:31
				 АлексЮстасу
				Правильно я по беглому знакомству предположу, это не для пользователей, а для программистов?
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 22 авг 2013, 18:03
				 trir
				Неа, это для ленивых пользователей. Если надо обработать кучу файлов - пишешь скрипт и так как консольный АкАд не грузит GUI, процесс происходит быстро!
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 23 авг 2013, 00:06
				 АлексЮстасу
				Это уже реально? Кто-то что-то написал-сделал?
А сейчас способа для создания файлов с новой СК на основе набора файлов еще нет?
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 23 авг 2013, 08:17
				 trir
				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" записать как скрипт...
 
			 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 23 авг 2013, 15:38
				 АлексЮстасу
				АлексЮстасу писал(а):Можно назначить сразу целому множеству уже существующих файлов dwg нужную СК. 
Это был не вопрос, а утверждение  
 
АлексЮстасу писал(а):Нужно только всё в "3_трансформация_координат_из_dwg_в_dwg" записать как скрипт...
Т.е. в самом Map такой сервис сейчас не реализован?
Тогда действительно "записать как скрипт...":
- открыть новый файл, назначить в нем нужную СК,
- подключить к нему старый файл с его СК,
- описать запрос к старому файлу с нужными параметрами, и выполнить его,
- отключить старый файл.
И сделать это для указанного набора существующих файлов с какой-то СК.
Только как это "записать как скрипт..." половчее реализовать?
Я сам только макросы пробовал писать.
 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 23 авг 2013, 16:13
				 trir
				Это был не вопрос, а утверждение
А я, только сегодня заметил  
 Смотри
 
Смотри
Для этого случая, скрипт будет выглядеть так:
Код: Выделить всё
-MapImport
MAPINFO
имя файла
Нет
С
У
Гидротехн_t
Д
С
С
Д
Код
В
В
сохраняешь как текстовый файл с расширением .scr и выполняешь командой "Пакет"
Переменные CMDDIA и FILEDIA надо выставить в 0
 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 23 авг 2013, 19:51
				 АлексЮстасу
				trir писал(а):сохраняешь как текстовый файл с расширением .scr и выполняешь командой "Пакет"
С Вашей бесценной подачи 

  уперся, потерял очередную кучку нервов, но накропал:
Код: Выделить всё
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
Уф!
Но, увы, сообразил только для отдельного файла.
А как это сделать пакетно - для каждого файла из указанного их множества?
Нужно же какой-то цикл организовать, переменную для имени файла или т.п. (пардон за псевдопрограммизьм)?
 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 23 авг 2013, 20:18
				 trir
				А как это сделать пакетно - для каждого файла из указанного их множества?
сам думаю...
Update1: В командной строке АкАд'а можно выполнять lisp-выражения, это же справедливо для пакетных файлов
Это значит, что 
можно заменить на
А
На
Код: Выделить всё
(command "_ADEQUERY" "_c" "_d" "_l" "_a" "_x" "_e" "_d")
Это улучшает читабельность, а так же позволяет сделать такой финт ушами:
Код: Выделить всё
(setq Test_dwg "[i]Подключаемый файл, который будет трансформирован.dwg[/i]")
(command "_ADEDRAWINGS" "_at" Test_dwg "_x")
Причём "setq" можно вынести в другой пакетный файл и запускать из него первый...
 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 24 авг 2013, 01:56
				 АлексЮстасу
				trir писал(а):В командной строке АкАд'а можно выполнять lisp-выражения, это же справедливо для пакетных файлов
Это значит, что 
можно заменить на
Это улучшает читабельность, а так же позволяет сделать такой финт ушами:
Код: Выделить всё
(setq Test_dwg "[i]Подключаемый файл, который будет трансформирован.dwg[/i]")
(command "_ADEDRAWINGS" "_at" Test_dwg "_x")
Причём "setq" можно вынести в другой пакетный файл и запускать из него первый...
 
Я не владею лиспом. Например, я не в курсе, можно ли "0" в первом лисп-выражении писать без кавычек? (Другие же параметры в кавычках?). И второй финт я пока не в состоянии оценить, и что, как и куда можно "вынести в пакетный файл".
По косвенным признакам мне кажется, что для не самого опытного программиста эта задача совсем несложная. (Но на всякий случай прошу у программистов пардону).
Да! Пути-названия файлов в скрипте нужно писать в кавычках - иначе пробелы в названиях папок или файлов будут препятствием. Но почему-то не все - на кавычки для названий подключаемых файлов выдается ошибка.
 
			
					
				Re: перевести множество готовых файлов в другую СК
				Добавлено: 26 авг 2013, 10:53
				 trir
				Знать 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"))
)