|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Замена связей AutoCAD 2012 и Excel
Minsk
Регистрация: 17.08.2011
Сообщений: 60
|
||
Просмотров: 18294
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
И в чем вопрос?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
по-мойму суть вопроса ясна.
Выложен код макроса для замены звязей в длкументе WORD с документом Excel. Это очень полезная штука, даже если она не относится к теме данного форума. Т.к. в AutoCAD тоже есть VBA , то не надо изобретать велосипед, а только перевести команды для WORD в команды для AutoCAD . Спасибо тому, кто понял с первого раза ![]() коллеги, оказывается связи с Excel попадают в "список внешних связей". 1, Если удалить из DWG сами ячейки , связанные с Excel. Кажется они называются поля, то в "список внешних связей" остаются строки "Связь с Excel ---- не используется." Удалить эти строки нельзя. Их там слишком много накопилось. Каким методом VBA или LISP можно их убрать ? 2, оставшиеся полезные связи вполне редактируемые, но ТОЛЬКО ПО ОДНОЙ. Их можно все выделть , но редактировать нет. Как можно одним движением поменять КОНЕЧНЫЙ ПУТЬ у всех выделенных связей ? Спасибо за внимание. Последний раз редактировалось Кулик Алексей aka kpblc, 03.09.2011 в 00:24. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Если суть вопроса "надо перевести", то - кому надо-то? Тебе? Так переводи. Будут трудности - спрашивай.
Оказывается, достаточно поискать по форуму: http://www.google.ru/cse?cx=partner-...ru%2Findex.php
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
жаль , что никто не ответил на простой вопрос -- как поменять старый путь внешней ссылки на новый. Я уже делал поиск по всему форуму -- ни у кого не встречается похожая проблема, только как часть большой
![]() вот что я нашел Эту функцию можно использовать в случае, если вы хотите переместить внешнюю ссылку в другое местоположение или если вы хотите одновременно переименовать внешнюю ссылку и переместить ее в другой каталог. Первый аргумент - старое имя, второй аругмент - новое имя третий аргумент - путь к новому размещению внешней ссылки Пример: (fixref "XR_01-LIB A" "XR_201" "W:\\project\\1234\\") Код:
но, по-моему, тут где-то ошибка. И это вообще не про замену путей. мне надо просто поменять все старые пути на новый в Менеджере Внешних Ссылок. Это должно быть просто. Также намекните, что за загадочная страница http://entercad.ru/adrefman.ru/ws1a9...2e719-7ba8.htm . Где етот Диспетчер ссылок с таким полезными командами ? коллеги я сильно страдаю, окно внешние ссылки по команде _xref. Как поменять всем сразу старый путь на новый ? Почему они не обновляются по кнопке сверху ? Последний раз редактировалось Кулик Алексей aka kpblc, 17.09.2011 в 21:17. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
seregas, ты чего-то "не тово"... То нужны ссылки на Excel, то - внешние ссылки. Ты уж разберись и сам отредактируй свои сообщения.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
у нас с тобой какое-то хроническое недопонимание. Ощущение такое , что твое звание "модератор" выдает в тебе человека, никогда не пытавшегося сделать такую сложную связь как AutoCAD и Excel. При специальной вставке - связь - Лист Excel она появляется в окне "СВЯЗИ". При Спец.Вставка-Связать-Объект AutoCAD она появляется во "Внешних связях". Мне уже все равно к какому типу они относятся, почему работать с ними одинаково неудобно. А создание новой связи через менеджер, так это вообще кошмар, хорошо хоть пользоватся им необязательно. Я ищу любой способ удобной работы хоть со "Связями", хоть с "Внешниими ссылками". Автокад хорошая программа, здесь все систематизировано, изменять общие свойства у набора объектов чуть ли не главное его достоинство. Но почему при выборе всех внешних ссылок нельзя поменять путь у всех сразу.
У меня в чертеже около сотни связей с разными файлами Excel . Я проделал большую работу, чтобы свести результаты в 1 .xlsx , чтобы упростить связь с AutoCAD. И теперь у меня куча ссылок на один единственный файл, и мне приходится заменять один путь на другой эти 100 раз вручную. Наверное, эту недоработку уже решили лет 10 назад. Поэтому прошу совета у профи LISP или VBA. А приходится воевать с тобой за чистоту темы без решения проблемы. Последний раз редактировалось seregas, 18.09.2011 в 01:37. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Сегодня ж не первое апреля
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Внешние связи и внешние ссылки - разные вещи. Это раз. Второе: в #4 я показал результаты поиска по словам "связь Excel". Ходил? Смотрел? Читал? Третье. Вставлять связь можно несколькими способами, и ни в одном случае вставленная связь не попадает в окно "Внешние ссылки". Проверял на AutoCAD 2012 64bit.
Сегодня специально переустановлю Office 2007, еще разок попробую. Или вечером на ноуте погоняю в условиях 32-разрядной ОС. Но пока что ссылки и связи - разные понятия, показываются в разных окнах и обрабатываются по-разному. И последнее. Я не вижу смысла делать связь AutoCAD и сторонних табличных редакторов (что Excel, что OpenOffice Calc). Все вычисления можно сделать в самом AutoCAD, чем я успешно и занимаюсь.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
тогда разрешите мне тоже немного по-OFFTOP-ить.
Вот,например, у меня есть "ТЕХНОЛОГИЧЕСКАЯ КАРТА ВОЗДЕЛЫВАНИЯ ТРИТИКАЛЕ" . Это трава такая, гибрид ржи и пшеницы, короче трава будущего. Возделывается она по той же технологии, что и озимая пшеница. Поэтому, нет смысла держать разные карты с одинаковыми операциями. Надо только заменить сорта и предшественников, те травы, которые уже померли в прошлом году, и их высушенные трупы пойдут на благо роста тритикале или озимой пшеницы. И вот я забацал неболшую формулу =ЕСЛИ($C$54<=$A$59;ДВССЫЛ(СЦЕПИТЬ("C";55+$C$54));ЕСЛИ($C$54<=($A$60+$A$59);ДВССЫЛ(СЦЕПИТЬ("D";55+$C$54-($A$59+1)));"ВВОДИ МЕНЬШЕ !!!")) Если я в поменяю в $A$54 одну цифру (1 из 10) , то в результате поменяется сорт тритикале (1 из 10) и рядом станет его предшественник (1 из 10) . Если я там же поставлю цифру (11 до 20), то в результате поменяется сорт озимой пшеницы и станет ее предшественнник. Также поменяется название всей карты. Также в зависимости от названия трактора в исходных данных в расчеты подставляется его мощность двигателя и расход топлива. Кстати, я тож раньше думал, то колхозники там в грязи копаются, ездят на 50-лених фордзонах и пьют водку, редко молоко. Так и есть. Но у нас самые нищие колхозы пашут по 3-4 тыщи га. А, например, с вико-овсяной смеси (трава на корм скоту, такая зелененькая) при правильном уходе прибыль до 1000 $ с гектара. Потом они везут эту траву в рулонах на старых МАЗах, когда эти рулоны в кузове стоят примерно в 2 раза больше, чем сам грузовик по остаточной стоимости ![]() Сама карта тоже вся считается, она с трудом влазит на 24 дюйма. Их три штуки. Я вижу тут недоработку -- зачем использовать лишнюю ячейку с одной цифрой, можно в названии в конце поставить нужное количество пробелов, считать их, и далее по тексту. При печати пробелы не видны, очень удобно. Это еще удлиннит формулу наполовину, но это потом, от скуки. Access я не знаю, пока все что можно делает Excel. Шас сделал таблицу в AutoCAD , там нет и намека на те возможности (ну может на 1 %), что предосталяет Excel. Жалко смотреть на "Вставить функцию..." Даже такой мелочи как имена ячеек и диапазонов, нет. И не дай бог удалить/добавить строку/столбец -- все собьется. С именами ячеек нет. Через месяц я буду смотреть на свою карту как баран , чо за $A$54 ??? и не знать куда тыкнуть мышой, У меня даже пояснения для меня самого сделаны с формулами ![]() Хорошая попытка Autodesk догнать Microsoft . Даже сама MS забросила точно такую же попытку с таблицами в своем собственном WORD. Для каждой задачи свое. По крайней мере AutoCAD догонит Excel не в этом десятилетии. Немного напоминает попытку России в 90-х сделать свой процессор, наверное расчеты делали на советких ламповых компутерах, когда весь мир резался в DIGGER уже на IBM PC. Да и наверное половину функция и методов расчетов MS надежно запатентовала, так что просто переписать не получится. Не те времена. Извини, отвлекся, поиск по твеой сылке смотрел, все 10 страниц результатов. Именно там была ссылка на загадочный "Диспетчер ссылок" , который не найдешь в меню AutoCAD , но именно он единственный может поменять пути у всех выбранных файлов (я даже прослезился), но он не работает с внешними ссылками (2 раза). Вообще надо как-то повлиять на наших коллег из Autodesk. Что-то они наворотили лишнего: СВЯЗИ, ВНЕШНИЕ ССЫЛКИ, Диспетчер подключений к БД, Диспетчер связей данных, Диспетчер ссылок. Может им пора что-то вычеркнуть и сосредоточится на чем-то одном ? Последний раз редактировалось seregas, 18.09.2011 в 18:29. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Нет, спасибо. Попробовал, хватит. Теперь не знаю как на 64-разрядной Win7 от его следов избавиться.
seregas, а ты подумай насчет программы, которая будет внутри AutoCAD все менять после нажатия на одну-две кнопки. Потому как ничего из того, что ты описал, вот так вот жизненно Excel'a не требует. Или я не понял задачу. И каждый из них отвечает за свою часть работы. Если не надо - не пользуйся, никто не неволит. Но все объединять вместе лично я не стал бы ни за какие коврижки. Запутаться будет как нефиг делать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
То seregas, жаль что Вы сами не понимаете какую чушь Вы несете. Я тут сравнил ферари с трактором беларусь - так ферари не делает и 1% процента от трактора - а ведь оба на двигателях внутреннего сгорания - это примерно что Вы пишете, только в другой тематике. Вам не приходило в голову, что это Вы от незнания делаете все через ж**у, а не ребята из автодеск - если посмтреть на то что Вы пытаетесь сделать - так чесание левой пяткой правого уха - это куда более рациональная вешь, если Вы знаете VB - это еще не значит что Вы "все" понимаете, а все вокруг тупые идиоты, не понимают как-же пяткой ухо чесать не удобно - изучите вначале предмет, перед тем как его критиковать, спросите если не знаете, посмотрите как аналогичные задачи решают более опытные "коллеги", а уж разобравшись - пишите свои "мудрые" советы "догоняющим" - про свои ноу-хау, как это делать более рационально.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
Дима_, написал бы сразу "многа букав". Тут всего 1 страница текста, ты не читал сначала.
Если сократить мою писанину, то вот кратко: 1. Кулик Алексей aka kpblc предложил , что все возможности Excel можно легко заменить встроенными таблицами AutoCAD и решения я никогда не найду. Я с легкими лирическими отступлениями это опроверг. Не для того что бы потрепать пальцами по клаве, а чтобы не закрывать открытую тему -- мне все еще очень надо узнать Код:
2. Как раз не знаю, ни LISP , ни VBA. Я даже нашел VBA-код, который по своей структуре выполняет эту задачу, но только в WORD. Я не думал , что подогнать VBA-код от WORD в VBA-код для AutoCAD будет так долго, и более того, не понятна сама задача и для Кулик Алексей aka kpblc, и для тебя Дима_ ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
seregas, вот ты скажи - у тебя меняются только значения текста или что-то еще? Если только текст - то поля в руки + DIESEL. И этого достаточно. Если меняются визуальные представления, например, штриховок - то можно уже и программирование привлекать.
Та формула, которую ты показал - это как раз и есть пятка. Внутри формулы использовать абсолютные ссылки вместо того, чтобы привлекать, например, ИНДЕКС и ПОИСКПОЗ - ИМХО изврат. Цитата:
Цитата:
Пока - непонятна. Точнее, непонятно, почему обязательно надо программирование и не рассматриваются варианты использования штатных возможностей AutoCAD'a.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
![]() я уже не спрашиваю, почему нельзя все связи обновить кнопой сверху. Со скрипом можно это обойти, разместив все связи на отдельном слое и обновлять связи , что мы видим в этом окне через другое окно -- "Диспетчер связей с данными" ![]() Последний раз редактировалось seregas, 19.09.2011 в 02:50. |
|||
![]() |
|
||||
Регистрация: 21.02.2009
Сообщений: 825
|
http://forum.dwg.ru/showthread.php?p=368469&#post368469
мы не про это говорим? Кстати. Пришло в голову решение. Почему-бы не сделать e-transmit. При этом создастся комплект и можно будет заменить содержимое экселевского файла
__________________
Я-проектировщик бывший проектировщик! |
|||
![]() |
|
||||
Регистрация: 21.02.2009
Сообщений: 825
|
Острота вопроса спала
![]() Я всё таки сделал внешнее формирование таблицы - не через даталинк. С даталинками есть проблема. Это мегатормоза при более менее крупной таблице с связью. Но решение было-бы интересно мне увидеть ![]()
__________________
Я-проектировщик бывший проектировщик! |
|||
![]() |
|
||||
Регистрация: 15.09.2011
Сообщений: 8
|
Offtop: А я вот поддерживаю товарища seregas. И описал он свою проблему вполне понятно. С макросом для Word он, конечно, погорячился, но не надо его за это гнобить. Он ведь, скорее всего, не программист и не понимает таких тонкостей. И я даже понимаю, почему он это делает именно таким способом, а не каким-нибудь другим. Скорее всего так просто исторически сложилось. Есть множество данных, которые появляются в процессе выполнения работы и их хранят именно в таблицах Excel, т.к. это быстро и удобно. Согласен, это не самый лучший вариант, особенно, когда они разрастаются. Это довольно сложно перенести большой объём данных и вычислений в совершенно другую систему на ходу, в процессе работы. И снова согласен, AutoCAD не предназначен для расчёта таблиц. А когда человек обращается с конкретной проблемой, говорить с умным видом "а зачем вам это нужно? правильнее делать по другому" уже бессмысленно. Вопрос не стоит, как сделать это правильно, вопрос стоит, как исправить то, что уже сделано. Форум для этого ведь и предназначен, разве нет?
|
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
Alex-2539, спасибо за поддержку. Представьте, я смотрю на эту карту, одну из трех, и думаю -- а ведь правда, перевести ее в AutoCAD раз плюнуть. Шас пока кофеек согреется легко, одной правой пяткой
![]() ![]() Последний раз редактировалось seregas, 15.11.2013 в 04:10. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
гаспада, периодически у меня все-таки появляется эта проблема. Попробую оживить тему, странно что никого больше это не волнует. Весь вопрос в том, что бы расчеты делать в Excel , а результаты выводить в AutoCAD.
Это 5 связей с файлом file1.xlsx, полученные : "Правка-Специальная вставка-Вставить связь-ЛистExcel" Они видны в "Правка-Связи" Какой LISP-командой перенаправить эти связи на file2.xlsx ? Эти файлы лежат в разных папках, поэтому очень желательно рассматривать имя файла как полный путь: path1/file1.xlsx path2/file2.xlsx Файлы по структуре одинаковые, надо просто поменять путь и имя. Спасибо. вот вложение, чтобы было легче. Спасибо |
|||
![]() |
|
||||
Регистрация: 10.06.2011
Сообщений: 8
|
seregas, а нельзя к этой проблеме подойти с другой стороны? В папку на которую ведут все связи из автокада класть нужный экселевский файл (тот, что последний) все с тем же именем file1.xlsx. Старый экселевский файл в таком случае можно переложить в другую папку (архивную), если он когда-нибудь еще может пригодиться. Думаю, в таком случае с автокадовским файлом вобще ничего не придется делать. Offtop: Но возможно я что-то не понял в вашем вопросе. Хотя, суть проблемы из ваших слов вполне ясна. Непонятно, почему у закоренелых форумчан такая неадекватная реакция на то, как она была сформулирована. Возможно, мозг думает у них по-другому, и вашая вербальная кодировка для них оказалась слишком непонятной. Плохо, что адекватного решения так и не предложено! Форум в данной теме свои задачи не выполняет!
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
seregas,
1. У тебя ссылка на файлы идет как ole объекты. Судя по ответам в этой теме на форуме Autodesk твой вопрос скорее риторический 2. Попробуй перейти с OleLink на DataLink
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 30.10.2010
Сообщений: 123
|
Вот лопни мои глаза, не пойму одну простую вещь:
seregas, а почему вообще ты таблицу делаешь в AutoCAD, когда:
Сделал бы ее отдельным документом прям в Excel, а чертежи в AutoCAD нарисовал. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
коллеги, спасибо за внимание
ServantosS, по твоему предложению все старые архивные папки с проектами буду ссылаться на последнюю папку с последним файлом. Их невозможно будет открыть, т.к. все будут давать одинаковые результаты расчетов с исходными данными из последнего файла path/file.xlslx VVA, нажми на плюсик здесь. Посмотри сколько труда вложено в эту таблицу, там под каждой ячейкой есть расчет. Я даже пытаться не буду засунуть ТАКУЮ таблицу в AutoCAD и ограничить себя его слабыми функциями. Даже в твоей ссылке первая фраза в статье "Arguably the most valuable tool in the modern-day engineer's toolbox is Microsoft Excel" говорит о бессмысленности предложенного. Смотрел твою ссылку, я тоже им внес кардинальное предложение Autodesk о полном изменении системы связей ![]() а на форуме MicroSoft я предложил полностью удалить MS Word и переписать его на основе MS Excel ![]() VVA и Petrov-Vodkin, коллеги ! Я уже читал кучу рекомендаций любителей писать статьи как сделать 1 связь через DataLink . Посмотрел бы я на автора , когда нужно сделать 100 отдельных связей. AutoCAD затыкается на Preview с самыми простыми таблицами, не говоря уже о моих "колхозных" разработках. Autodesk заставляет нас отказываться от расчетов в Excel и использовать его только для вывода результатов, а мы этому активно сопротивляемся. Мне не надо загонять все таблицы в AutoCAD. Из этой таблицы мне надо взять только некоторые результирующие цифры и вставить в чертеж в виде Объектов Excel или Объектов AutoCAD. Я уже это давно сделал, нужно только заменить у них путь на другую таблицу в другой папке. Только не по одной, как предлагает AutoCAD. Вот и все ! Я уже где-то писал, что строка path1/file.xlsx точно должна присутствовать в DWG-файле . Может ее как-то в бинарном виде изменить ? Последний раз редактировалось seregas, 28.05.2012 в 02:20. |
|||
![]() |
|
||||
Регистрация: 25.10.2011
Сообщений: 132
|
Согласен, что встроенная в автокад работа связей неудобна в работе, но все это можно переписать или найти подходящую альтернативу.
Сохрани в dxf, открой блокнотом, аккуратно замени пути, сохрани обратно в dwg. В результате не уверен. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Я сохранил твой чертеж как dxf. Поиском "file1.xlsx" нашел только твою текстовую строчку. Зато там же поиском по AcDbOle2Frame нашел описание OLE. Там куча цифр в шестнадцатиричном виде. Я перевел название "file1.xlsx" в шестнадцатиричный вид. вроде похожие буковки нашел. Только учти, что в lisp один слеш заменяется на два (если видишь D:\Folder\file.xls то в lisp нужно писать D:\\Folder\\file.xls)
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 31.05.2012 в 12:41. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
VVA, сохранил код в файл Dec2Hex.lsp , загрузил его, но команда Dec2Hex не распознается.
tehkonst , в .DXF есть много символов в непонятной кодировке , обычно редактирование его в блокноте ни к чему хорошему не приводит. Все заменил в но Автокаде никаких изменений в файле не произошло. Последний раз редактировалось seregas, 31.05.2012 в 00:16. |
|||
![]() |
|
||||
Регистрация: 25.10.2011
Сообщений: 132
|
Да с ole трудно, расшифровывать надо. Data link просто текстом путь хранит.
Еще как вариант, создать промежуточный файл excel с абсолютными ссылками на нужный файл. И положить его рядом с каждым dwg, который ссылается. Менять путь в excel файлах значительно проще. А программно, видимо, нужно расшифровать из 16-ричного кода пути к ole объектам, удалить эти объекты, и затем заново их скопировать и вставить из excel файла в тоже место. Это только предположение, я в объектной модели автокада плохо ориентируюсь. Последний раз редактировалось tehkonst, 31.05.2012 в 12:12. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Поясни. Dec2Hex - это сервисная ф-ция. Внес изменения в #30.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
tehkonst, я понял твою завернутую мысль -- рядом с каждым DWG-файлом будет лежать LINK.xlsx с постоянным именем. Это можно сделать, если LINK.xlsx будет являться копией kolhoz1.xlsx (в нем 12 листов и он лежит тут же рядом), только без расчетов но со ссылками на все его пару сотен результирующих ячеек. Согласен , что это реально осуществить, но я уже это не потяну второй раз. Тем более, что папки с разными проектами KOLHOZ1 и KOLHOZ2 не могут быть одинаковыми.
Я уже что-то подобное реализовал между несколькими EXCEL-файлами (типа составную ссылку) функцией : =ДВССЫЛ(СЦЕПИТЬ($J$1;"BL";Str_oper)) , где $J$1 -- ячейка с именем файла и листа BL -- столб Str_oper -- имя ячейки с номером строки Вот так приходится извращаться для достижения лучшей автоматизации расчетов. коллеги, как все сложно VVA, я пробовал твою программу, подставил в нее свой путь. Получил ряд 16-ричных цифир. В файле .dxf такого набора не нашел. Мой рабочий DWG-файл является здоровой таблицей, нарисованной простыми линиями, где перемешаны схемы, виды сверху тракторов , тексты со ссылками на результаты расчетов из Excel и картинки-ссылки на Excel-диаграммы. Размером до 3 МБ , это много. Представьте, как он будет выглядеть в текстовом редакторе после его сохранения в .DXF ! 102 МБ !!! В идеале хотелось бы способ задать "НАЙТИ ... ЗАМЕНИТЬ ..." Мы все видели это окно в WORD, а ведь он тоже понимает макросы и VBA и это решение уже давно есть. Там даже можно просто включить "отображение связей" и менять в них строки текста простым поиском. DataLink делает ссылку на одно число из Excel-файла, но отображает его в соответствии со своими стилями таблиц и стилями текста. По-моему, эти стили живут отдельно друг от друга. Все эти DataLink по-умолчанию заблокированы от редактирования. Мне приходилось ее снимать по тыще раз день. Какая-то параноидальная забота о моей безопасности, которую нельзя отключить. И если мне надо просто ссылка с большим размером шрифта, то мне надо делать новый стиль таблицы. Я предпочел вставлять все ссылки в виде Excel-объектов с редактированием их отображения именно в первоисточнике. В Excel даже есть шрифты, идентичные стандартному GOST. Если сделать все границы в Excel невидимыми, то все ссылки прекрасно вписываются в тексты в DWG-файле. Получается , в LISP нет команд и возможностей работать с OLE-связями ? Последний раз редактировалось seregas, 02.06.2012 в 12:01. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
Коллеги, за эти годы я так и не нашел решения.
Но уже давно я делаю гораздо проще : все ссылки остаются на своих местах, никаких замен путей не требуется. Проектов много, все лежат на своих местах, но они имеют сложности при открытии, как бы "read only" . Смотреть их можно, открывать связанные файлы в определенной последовательности, можно копировать содержимое без связей ( для старых проектов, в новых можно копировать и со связями). Редактировать можно голый текст, при условии отключения автообновления связей, без установления новых связей. На то они с "старые" проекты, чтобы их не менять. Зато каждый проект со всеми .DOCX, .XLSX, .DWG, связанными между собой, редактируется только в одной папке , имеющей постоянное имя и адрес. Я уже привык, и никаких трудностей не вызывает, никаких макросов (для изменения связей в .DOCX) не требуется. Тем более макрос, указанный в начале этой ветки для WORD, не умеет менять пути связей в таблицах-рисунках (Рамка-Содержание с фамилией автора ![]() ![]() Таким образом, мои проекты только усложняются (хотя и пишутся по 5 штук одновременно), вероятности ошибок уменьшаются, т.к. связи уже не надо менять. Так даже лучше. Я по десятку раз в день складирую один проект из рабочей папки и заменяю его другим. Вот и все решение, для кого-то очевидное. Мне казалось, что это мое решение, но все-аки первым его предложил mr. ServantosS. Так что отдельная благодарность ему и коллегам, чьи ники представлены на это странице ![]() Последний раз редактировалось seregas, 15.11.2013 в 04:27. |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
коллеги, я заметил, что связи с Excel, лежащие на 2 уровне вложения не обновляются. Надо открывать внешнюю ссылку , обновлять связи с Excel (очень долго около 5 сек на каждом чертеже, т.е. около 1 сек на КАЖДУЮ СВЯЗЬ !!!) , закрывать внешнюю ссылку. Обновлять внешние ссылки в главном чертеже . Если делать 2 проекта одновременно, то внешюю ссылка для них одинаковая, но подписи на ней разные для каждого проекта. Представляете, что творится ?
Эй , в Autodesk ! На дворе 2014 год, проснитесь ! |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
гспади, не надо ничего рисовать (вряд ли вы это потянете)
надо просто вставить фамилии из Эксель я вычисли 3 варианта связей: 1. Спец. Вставка - Связать - Лист Excel -- самая надежная, обновляется через ссылки второго уровня вложения. Не форматируется. Обновление мгновенное, не требующее вмешательства. 2. Спец. Вставка - Связать - Объект AutoCAD. Иногда связь теряется по неизвестным причинам. Практически не поддается редактированию. Форматирование сложное через стили таблиц. Обновление очень долгое, почти 1 сек/связь. На 2 уровне внешних ссылок не обновляется. 3. Поля через драйвер DB (База AD). Отличное форматирование через стили текста. Может потеряться связь, не изучен процесс сохранения точек связи в Базе AD. На 2 уровне внешних ссылок не обновляется. преимущество -- можно соединять с данными на чертеже. Предлагаю делиться наблюдениями. Я считаю что связи с Excel гораздо нужнее и полезнее для сложных проектов, чем совместная облачная работа, чему Autodesk уделяет слишком много времени, в ущерб другим видам связей. Расчетная часть Excel просто недостижима для таблиц AutoCAD, и не стоит даже пытаться повторить это, на современном уровне. Надо просто правильно и надежно соединить этих двух лидеров в своих областях. |
|||
![]() |
|
||||
Регистрация: 21.02.2009
Сообщений: 825
|
Если дело(задача) только в этом, то посмотри в сторону подшивок. Фамилии в штампе будут полями с свойствами подшивки(или листа подшивки)
А по теме: я тоже начинал идти по этому пути, но большое кол-во данных не залинкуешь - начинаются тормоза. Да и менять связи проблематично... Так-что приходим к варианту: обработка данных в внешней БД(СУБД) -> перекидывание на чертёж в Автокад с помощью программирования
__________________
Я-проектировщик бывший проектировщик! |
|||
![]() |
|
||||
Регистрация: 17.08.2011
Minsk
Сообщений: 60
|
у меня была такая простая идея -- взять формат А1, поместить туда ссылки из Excel на фамилии. Положить этот формат в укромное место и вставлятьь ег в чертежи в качестве внешней ссылки. Проекты разные, но у каждого есть этот одинаковый XLS , где фмилии расположены строго в определенном месте. Как они могут быть разные есть следующий XLS сделан из предыдущего. А формат А1 один на всех.
Я просто хочу открыть чертеж, а формт с правильными фамилиями уже подставлен в него. Это настолько элементарная задача, что она должна быть решена еще 10 лет назад, когда только появились внешние ссылки AutoCAD. Но как видите решения до сих пор нет. Если я твердо решил уйти от screenshot одной ячейки из Excel, то я продираюсь через эти давно забытые Autodesk технологии. А пока мне приходится в каждом чертеже клеить одинаковые связи, и при открытии на следующий день наблюдать: половина связей слетела, половина осталась. Решение , которое действительно отвечало этим простейший требованиям -- это связь в виде маленького screenshot одной ячейки из Excel. Autodesk так и пишут на своем сайте -- "поля во внешних ссылках не обновляются". Мне даже стыдно за Autodesk. У меня есть карты 40*30 ячеек ( я даже купил 2*24" монитора, что бы видеть что в них написано), и в итоговом чертежи их 3 шт на А1. И как ни странно, я не вижу другой альтернативы, как их вставить -- в только в виде screenshot из Excel. Так что это корявое решение иногда оказывается единственным. Сергей Богатов , спасибо на намек. Я видел эти подшивки. Раньше я думал, что это для крупных проектов на сотни листов. Их возможностей не знаю. И какое они имеют отношение к Excel ? |
|||
![]() |
|
||||
Регистрация: 21.02.2009
Сообщений: 825
|
Цитата:
http://dwg.ru/dnl/5319 http://forum.dwg.ru/showthread.php?t=5111 И используй ПОИСК
__________________
Я-проектировщик бывший проектировщик! |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ASD - AutoCAD Structural Detailing. Проблемы и их решение. | Faber | Вертикальные решения на базе AutoCAD | 805 | 03.10.2015 21:33 |
связь текстовых полей AutoCad с ячейками в Excel | April | AutoCAD | 9 | 29.06.2014 12:35 |
VBA. Как импортировать содержимое ячейки Excel в AutoCad? | Petrov-Vodkin | Программирование | 4 | 27.12.2010 12:22 |