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

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

Помогите программой либо принципом автоматизации ссылок

Ответ
Поиск в этой теме
Непрочитано 26.10.2006, 14:02 #1
Помогите программой либо принципом автоматизации ссылок
Diman111
 
промышл проектант
 
Изовсехщелей
Регистрация: 26.05.2005
Сообщений: 323

Такая тема.
Есть 150 чертежей — в каждом черт. ссылки на другие листы из этих 150.
ссылки в виде :
--файл 9999000ТТТ111_xx1.dwg
--ссылка на него представляет собой текст "9999-000-ТТТ-111"

в таком виде — есть запись в штампе чертежа файла 9999000ТТТ111_xx1.dwg.

т.е. ссылку "9999-000-ТТТ-111" имя можно взять или из имени файла и модифицировать или не меняя но из атрибута блока штампа.

что можите посоветовать.

Сейчас сидим меняем 150 листов с сылками и материмся оч громко.
есть риск пропустить ссылку и тогда будут потом звонки заказчика.

Помогите пожалуйста.
Просмотров: 3493
 
Непрочитано 26.10.2006, 15:02
#2
VVA

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


Плохо понял что надо.
Вот лисп. Выводит список всех внешних ссылок чертежа. Имя получается из имени файла внешней ссылки, отбросив все, что после _. Полученный список выводится в блокнот.
Код:
[Выделить все]
(defun C:NXR ( / ret sxr nm fd fn)
(setq sxr (ssget "_X" '((0 . "INSERT"))))
(if sxr
(foreach item (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex sxr))))
  (if (vlax-property-available-p item 'Path)
    (setq ret (append ret (list (vla-get-path item)))))
  ))
  (setq ret (mapcar '(lambda (x / nm pos)
	     (setq nm (VL-FILENAME-BASE x))
             (if (setq pos (VL-STRING-SEARCH "_" nm))
             (substr nm 1 pos) nm))
		    ret))
  (if ret
    (progn
      (setq ret (vl-sort ret '<))
      (setq fd (open (setq fn (VL-FILENAME-MKTEMP "xref.txt")) "w"))
      (mapcar '(lambda(x)(write-line x fd)) ret)
      (close fd)
      (startapp (strcat "notepad.exe " fn))
      )
    (alert "Нет внешних ссылок")
    )
  (princ)
)
(princ "\nНаберите в командной строке NXR")
VVA вне форума  
 
Автор темы   Непрочитано 26.10.2006, 16:29
#3
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Спасибо но не о том немного речь.
Прошу прощения за плохо поставленную задачу.
Попробую исправиться.
скажем на чертеже 111 есть план, на котором замаркирован узел. а сам узел разрисован на другом листе - скажем 222. Так вот ссылка на лист 222 есть на листе 111 а на листе 111 ссылка на лист 222.
причем ссылка - просто текст - типа "см. лист 222" или "(АС-222)".
но всегда либо 222 либо АС-222.
в принципе ссылку 111 и 222 можно писать и атрибутом блока и как угодно.
главное что бы если я переименую лист 111 в 333 то на листе 222 ссылка 111 измениласть на 333 автоматически.
мне кажется это можно организовать путем вставки на лист скажем маркера с текстом 222 (напримет блок с определенным именем на скрытом слое). а ссылку создавать блоком с 2 атрибутами - 1- невидимый но редактируемый - указываем номер помеченного листа 222 а 2 атрибут меняется програмно.

причем скрытый блок маркер должен брать передаваемый номер из имени файла или указанного атрибута штампа.

затем пускается лисп на список файлов и делает свое дело - сначала
заполняет маркерные блоки номерами листов
затем сверяет ссылочные номера с маркерными номерами.

вот такая фигня - если опять непонятно - скажите попробую иначе описать.
Diman111 вне форума  
 
Непрочитано 26.10.2006, 16:33
#4
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,345


я подобное через sheet set+field делаю. Поля и отслеживают изменения . У тебя листы layout-ами или в модели разложены?
asys вне форума  
 
Непрочитано 26.10.2006, 16:37
#5
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Asys
Блина это должен был сказать Я :evil:

PS. Я блин там как раз по поводу твоих стеночек отвечаль
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 26.10.2006, 16:54
#6
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Цитата:
Сообщение от Asys
я подобное через sheet set+field делаю. Поля и отслеживают изменения . У тебя листы layout-ами или в модели разложены?
Елси можно поподробнее про подшивки и фиелды.

каждый файл отдельный чертеж.
150 литов 20 исполнителей - кто где делает и в модели и в пространстве листа.
Diman111 вне форума  
 
Автор темы   Непрочитано 27.10.2006, 11:02
#7
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Хотелось бы узнать еслть ли еще какие либо предложения??
Diman111 вне форума  
 
Непрочитано 30.10.2006, 17:07
#8
Станчев


 
Регистрация: 30.10.2006
Болгария
Сообщений: 1


Можно создать файль в котором есть два поля для каждого чертежа
первое - имя ссилки
второе - имя файла
Создаеш программу которая при изменение имя ссилки меняет в файле соответное поле.
Создаеш другую программу которая берет имя ссилки из файла и заносит в атрибут блока у которого скритий атрибут совпадает с имя файла.
Станчев вне форума  
 
Автор темы   Непрочитано 08.11.2006, 08:32
#9
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Цитата:
Сообщение от Станчев
........
Создаеш программу которая при изменение имя ссилки меняет в файле соответное поле.
Создаеш другую программу которая берет имя ссилки из файла и заносит в атрибут блока у которого скритий атрибут совпадает с имя файла.
Проблема кроется в неумении создать программу
Diman111 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите программой либо принципом автоматизации ссылок

Реклама i