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

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

Автозамена части имени файла в гиперссылке

Ответ
Поиск в этой теме
Непрочитано 07.05.2013, 01:17 #1
Автозамена части имени файла в гиперссылке
alega11
 
Регистрация: 04.05.2013
Сообщений: 11

Как автоматизировать процесс замены части имени файла в гиперссылке?

на каждом чертеже сначала присваиваю всем элементам одинаковый относительный путь (например .\PM1_01_04_01_VA_01_01_S_000.xlsx)
потом вручную меняю каждую ссылку по значению мультивыноски (типа 1, 2, 3 и т. д. соответственно .\PM1_01_04_01_VA_01_01_S_001.xlsx, .\PM1_01_04_01_VA_01_01_S_002.xlsx, .\PM1_01_04_01_VA_01_01_S_003.xlsx и т.д).


своих мозгов лисп написать не хватает.
Просмотров: 3258
 
Непрочитано 07.05.2013, 10:20
#2
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


При заданных условиях (в мультивыносках числа, заданный путь и т.д.) простейшее решение:

Код:
[Выделить все]
 (vl-load-com)
(setq prefix ".\\PM1_01_04_01_VA_01_01_S_")
(while (setq obj (vlax-ename->vla-object (car(entsel))))
  (vla-add
    (vla-get-Hyperlinks obj)
    (strcat prefix (substr "000" 1 (- 3 (strlen (vla-get-textstring obj)))) (vla-get-textstring obj) ".xlsx")
    )
  )

Последний раз редактировалось 5hev, 07.05.2013 в 10:24. Причина: (vl-load-com)
5hev вне форума  
 
Автор темы   Непрочитано 07.05.2013, 14:23
#3
alega11


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


5hev, спасибо, но

ошибка: ActiveX Server возвратил ошибку: неизвестное имя:
TextString
alega11 вне форума  
 
Непрочитано 07.05.2013, 15:11
#4
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


alega11, программой подразумевается выбор мультивыносок с текстом до момента пустого выбора. С данным типом выносок все работет, если у вас - нет, тогда присоедините пример выносок, с которыми работаете
5hev вне форума  
 
Автор темы   Непрочитано 07.05.2013, 16:04
#5
alega11


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


может я неправильно понял, но программа меняет (т.е. делает) ссылку мультивыноски, а не элемента
Миниатюры
Нажмите на изображение для увеличения
Название: рисунок.jpg
Просмотров: 45
Размер:	87.8 Кб
ID:	102703  
alega11 вне форума  
 
Непрочитано 08.05.2013, 00:04
#6
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


Ну, товарисч))) Я не телепат!) Вот вам опять же простейший вариант без проверок и других удобств

Код:
[Выделить все]
 (vl-load-com)
(setq prefix ".\\PM1_01_04_01_VA_01_01_S_")
(while (and
	 (setq obj (vlax-ename->vla-object (car(entsel "\nЭлемент:"))))
	 (setq mleader (vlax-ename->vla-object (car(entsel "\nВыноска:"))))
	)
  (vla-add
    (vla-get-Hyperlinks obj)
    (strcat prefix (substr "000" 1 (- 3 (strlen (vla-get-textstring mleader)))) (vla-get-textstring mleader) ".xlsx")
    )
  )
5hev вне форума  
 
Автор темы   Непрочитано 08.05.2013, 00:24
#7
alega11


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


5hev, СПАСИБО!
alega11 вне форума  
 
Непрочитано 08.05.2013, 00:29
#8
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


Заметил, что гиперссылки не меняются при вторичном проходе того же объекта, а новое значение просто добавляется в коллекцию гиперссылок объекта... Короче, вот так лучше

Код:
[Выделить все]
 (vl-load-com)
(setq prefix ".\\PM1_01_04_01_VA_01_01_S_")
(while (and
	 (setq obj (vlax-ename->vla-object (car(entsel "\nЭлемент:"))))
	 (setq mleader (vlax-ename->vla-object (car(entsel "\nВыноска:"))))
	)
  (vlax-for i (vla-get-Hyperlinks obj) (vla-Delete i))
  (vla-add
    (vla-get-Hyperlinks obj)
    (strcat prefix (substr "000" 1 (- 3 (strlen (vla-get-textstring mleader)))) (vla-get-textstring mleader) ".xlsx")
    )
  )
5hev вне форума  
 
Автор темы   Непрочитано 08.05.2013, 21:58
#9
alega11


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


5hev, спасибо, все работает на ура.
уже сэкономил кучу времени. Еще раз спасибо!
_____
5hev, не сочтите за наглость:
а можно сделать так, чтобы относительный путь копировался в пояснение к гиперссылке и ставилась галка DWG в DWF?
(требования заказчика
Миниатюры
Нажмите на изображение для увеличения
Название: рисунок_2.jpg
Просмотров: 36
Размер:	180.2 Кб
ID:	102807  
alega11 вне форума  
 
Непрочитано 09.05.2013, 00:32
#10
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


Можно. Засунул все это в процедуру, теперь запуск по команде addurl или по пробелу - повторный запуск

Код:
[Выделить все]
 (vl-load-com)
(defun c:addURL( / prefix obj mleader str xdata)
(setq prefix ".\\PM1_01_04_01_VA_01_01_S_")
(while (and
	 (setq obj (vlax-ename->vla-object (car(entsel "\nЭлемент:"))))
	 (setq mleader (vlax-ename->vla-object (car(entsel "\nВыноска:"))))
	)
  (vlax-for i (vla-get-Hyperlinks obj) (vla-Delete i))
  (vla-add
    (vla-get-Hyperlinks obj)
    (setq str (strcat prefix (substr "000" 1 (- 3 (strlen (vla-get-textstring mleader)))) (vla-get-textstring mleader) ".xlsx"))
    str
    )
  (setq obj   (vlax-vla-object->ename obj)
	xdata (assoc -3 (entget obj '("PE_URL"))))
  (entmod (subst
	  (subst
	    (subst (cons 1071 1) (assoc 1071 (cdr (nth 1 xdata))) (nth 1 xdata))
	    (nth 1 xdata)
	    xdata)
	  xdata
	  (entget obj '("PE_URL"))
	  ))  
  ))
5hev вне форума  
 
Автор темы   Непрочитано 09.05.2013, 00:52
#11
alega11


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


5hev, СУПЕР! и
alega11 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автозамена части имени файла в гиперссылке



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доработать прог. написания имени и адреса файла Grinzaid Программирование 16 23.07.2007 10:33
английский ACAD2005 в имени файла не понимает русские буквы sv_penza AutoCAD 6 26.04.2007 16:20
Появление строки ввода имени файла, вместо панели выбора фай NIVa AutoCAD 6 26.06.2006 12:43
Где хранится значение суффикса имени файла печати? kp+ AutoCAD 3 27.01.2006 15:05
задание атрибуту значения имени файла Паша Горбунов AutoCAD 5 21.10.2005 19:06