| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вставить много ссылок

Вставить много ссылок

Ответ
Поиск в этой теме
Непрочитано 31.03.2015, 12:25 #1
Вставить много ссылок
smigami
 
инженер-конструктор
 
Регион-62
Регистрация: 17.12.2012
Сообщений: 230

Как вставить в один файл много ссылок на .dwg? (многократная команда xattach) а то по одной как-то скучно...
__________________
Собирай по винтику - наберешь...
Просмотров: 2518
 
Непрочитано 31.03.2015, 13:38
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846


http://www.google.ru/cse?cx=partner-...%BA&gsc.page=1
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.03.2015, 19:06
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Вариант отсюда
Вставляет из подпапки с именем XREF все чертежи как внешние ссылки на слой Xref
1. В корневой папке с чертежом создаешь подпапку с именем XREF
2. Копируешь туда чертежи
3. Загружаешь лисп. Команда XATT
Код:
[Выделить все]
 
(defun C:XATT (/ path lst sett)
;;;Attach Xref from a subfolder named XREF of the main drawing
;;;Posted http://www.cadtutor.net/forum/showthread.php?91669-looking-for-a-lisp-or-script-to-attach-a-xref
;;;http://forum.dwg.ru/showthread.php?p=1387542
  (vl-load-com)
  (setvar "TILEMODE" 1) ;_switch to Model
  (setq sett (mapcar '(lambda (x)(getvar x))
  '("INSUNITSDEFSOURCE" "INSUNITSDEFTARGET" "INSUNITS" "EXPERT")
  ))
  (vl-cmdf "_Layer" "_Make" "Xref" "") ;_make Layer named Xref
  (setq	path (vl-string-right-trim "\\" (getvar "DWGPREFIX")) ;_get path of the main drawing
	path (strcat path "\\" "Xref") ;_get path to subfolder named Xref
  )
  (mapcar '(lambda (x)
	     (vl-catch-all-apply
	       '(lambda	()
		  (vla-attachexternalreference
		    (vla-get-modelspace
		      (vla-get-activedocument (vlax-get-acad-object))
		    )
		    x
		    (vl-string-translate
		      ",.$#=@^\`"
		      "-_dpeaut"
		      (vl-filename-base x)
		    )
		    (vlax-3d-point '(0 0 0))
		    1
		    1
		    1
		    0
		    :vlax-true
		  )
		)
	     )
	   )
	  (setq lst (z-files-in-directory path "*.dwg" nil))
  )
  (mapcar '(lambda (x y)(setvar x y))
  '("INSUNITSDEFSOURCE" "INSUNITSDEFTARGET" "INSUNITS" "EXPERT")
  sett
  )
  (if lst
    (alert
      (strcat (itoa (length lst)) " xref attached from\n" path)
    )
    (alert (strcat "Nothing xref found in\n" path))
  )
  (princ)
)
;;;* Function z-files-in-directory returns a list of files located in a given
;;;* directory
;;;*    Author: Vitaly Zuenko (ZZZ)
;;;* Parameters:
;;;*    Directory - path eg "D:\\my documents\\ZEF\\Lisp"
;;;*    Pattern - template such as "*. lsp", or a list'("*. dwg "" *. dxf ")
;;;*    Nested  -  search in subfolders: t (yes) or nil (no)
;;;* Example call:
;;;(Z-files-in-directory "D:\\my documents\\ZEF\\Lisp" "*. dwg" t)
;;;(Z-files-in-directory "D:\\my documents\\ZEF\\Lisp"'("*. dwg "" *. dwt ") t)
;;;=============================================================================
(defun z-files-in-directory (directory pattern nested /)
  (if (not (listp pattern))
    (setq pattern (list pattern))
  )
  (if nested
    (apply
      'append
      (append
	(mapcar	'(lambda (_pattern)
		   (mapcar '(lambda (f) (strcat directory "\\" f))
			   (vl-directory-files directory _pattern 1)
		   )
		 )
		pattern
	) ;_ mapcar
	(mapcar	'(lambda (d)
		   (z-files-in-directory
		     (strcat directory "\\" d)
		     pattern
		     nested
		   )
		 )
		(vl-remove
		  "."
		  (vl-remove ".." (vl-directory-files directory nil -1))
		)
	)
      )
    )
    (apply 'append
	   (mapcar '(lambda (_pattern)
		      (mapcar '(lambda (f) (strcat directory "\\" f))
			      (vl-directory-files directory _pattern 1)
		      )
		    )
		   pattern
	   )
    )
  )
)
(princ "\nType XATT in command line")
(vl-load-com)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.04.2015, 14:08
#4
shartal


 
Регистрация: 12.08.2009
Сообщений: 447


Почему бы просто не выделить все нужные с shift или ctrl в окне выбора файла ссылки. Так только с растрами нельзя поступать, но вопрос то про dwg.
shartal вне форума  
 
Автор темы   Непрочитано 02.04.2015, 15:17
#5
smigami

инженер-конструктор
 
Регистрация: 17.12.2012
Регион-62
Сообщений: 230


Спасибо! попытаюсь попробовать.

Теперь задача, правда, немного изменилась...
папка с чертежами .dxf стопиццот штук (чертежи пластин из адванса)
как бы их всех оптом внедрить в dwg? в идеале - чтоб еще и ссылка была живая)))

----- добавлено через ~16 мин. -----
Цитата:
Сообщение от shartal Посмотреть сообщение
Почему бы просто не выделить все нужные с shift или ctrl в окне выбора файла ссылки
не знаю, как у Вас, у меня автокад 2012, и в окне выбора ссылки можно указать только один файл.......
__________________
Собирай по винтику - наберешь...

Последний раз редактировалось smigami, 02.04.2015 в 15:26.
smigami вне форума  
 
Непрочитано 02.04.2015, 19:18
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Цитата:
Сообщение от smigami Посмотреть сообщение
папка с чертежами .dxf стопиццот штук (чертежи пластин из адванса)
Нужно сконвертировать в dwg
1. Есть платные конвертеры
2. DWG TrueView Но там, неверное, придется по обному файлу
3. Добро пожаловать в сценарии (script) Автокада
Применить ко многим файлам можно с помощью Script Writer от Lee Mac'a
Правда чтобы обрабатывал dxf нужно в коде найти строку "*.dwg" и заменить на "*.dxf"
Строка скрипта для применения такая
Цитата:
_.open *file* _.saveas 2007 _.close
Обращаю внимание на пробелы!!!! между 2007 и _.close два пробела
2007 - версия dwg файла (возможные варианты 2004, 2007, 2010, 2013)

PS Добавил во вложение модифицированный лисп. Достаточно указать директорию и ввести требую версию dwg файла (2004 2007 2010 2013)
Вложения
Тип файла: lsp DXFScriptWriterV1-2_VVA.lsp (27.4 Кб, 28 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.04.2015, 07:02
#7
baksconstructor


 
Регистрация: 05.11.2014
Сообщений: 982


Цитата:
Сообщение от smigami Посмотреть сообщение
Теперь задача, правда, немного изменилась...
папка с чертежами .dxf стопиццот штук (чертежи пластин из адванса)
как бы их всех оптом внедрить в dwg?
Ну как вариант сделать этим.
baksconstructor вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вставить много ссылок

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная работа команды Вставить Igor' Kulikov AutoCAD 14 16.03.2020 11:54
Хочу в автокаде в узлах расчета вставить значения из excel, и чтобы они менялись stessi2006 AutoCAD 20 23.01.2015 12:43
Сохранение набора внешних ссылок. shartal AutoCAD 10 08.12.2014 17:13
как вставить блок в точки, заданные во внешнем файле (txt,) Marina Динамические блоки 8 06.04.2012 16:04
Как вставить в автокад с помощью VBA данные из базы данных? Kostia8_8 Программирование 7 14.10.2009 16:37