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

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

перенос данных из МТекст в таблицу автокада

Ответ
Поиск в этой теме
Непрочитано 27.07.2010, 13:33 #1
перенос данных из МТекст в таблицу автокада
olegans
 
Регистрация: 27.07.2010
Сообщений: 13

Добрый день уважаемые участники форума. Пытаюсь освоить LISP. Знаний нет, есть только желание и задача. Имеется чертеж на котором много отдельных прямоугольников которые соединены линиями друг с другом преимущественно попарно. То есть например один прямоугольник это есть порт определенного оборудования и он соединен линией с другим прямоуголником (портом) другого оборудования. Внутри каждого прямоугольника при помощи MТекст обозначены названия и номера портов. Кроме этого каждая линия также при помощи MTeкста подписана (марка кабеля номер кабеля. Стоит задача сформировать из всего этого множества соединений таблицу в автокаде которой будет видно что с чем соединяется (портА, портB, марка кабеля) Подскажите в какую сторону двигаться?
Просмотров: 10153
 
Непрочитано 27.07.2010, 13:49
#2
Кулик Алексей aka kpblc
Moderator

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


Для начала - в сторону предоставления образца
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.07.2010, 14:06
#3
olegans


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


Здравствуйте!
Образец документа
Вложения
Тип файла: dwg
DWG 2010
образец.dwg (90.4 Кб, 1014 просмотров)
olegans вне форума  
 
Непрочитано 27.07.2010, 14:20
#4
Кулик Алексей aka kpblc
Moderator

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


А вот теперь еще надо понять:
  • какой формы должна быть таблица;
  • Где на каждой линии ПортА, а где - ПортБ
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.07.2010, 14:27
#5
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


А образец документа каким ACadом сделан, а то 2008 открывать не хочет.
Если не сложно пересохраните файл в формате до 2008, хочется посмотреть на образец
TararykovDG вне форума  
 
Автор темы   Непрочитано 27.07.2010, 14:31
#6
olegans


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


Вот такая таблица которая в данный момент заполняется вручную то есть тупо перебиваются названия из схем.... А когда таких схем много ошибок соответственно тоже



Образец автокад 2004
Вложения
Тип файла: dwg
DWG 2010
образец2.dwg (147.2 Кб, 999 просмотров)
Тип файла: dwg
DWG 2004
образец_2004.dwg (80.9 Кб, 1002 просмотров)

Последний раз редактировалось olegans, 27.07.2010 в 14:49.
olegans вне форума  
 
Непрочитано 27.07.2010, 15:56
#7
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Передайте привет тому кто это рисовал, что бы то что делаете в ручную делалось само "на счет раз". Надо сильно поработать над форматом чертежа (одно только рисование на листе, вне области листа - чего стоит) а именно - перенести все кабели на отдельный слой, обрисовать их полилиниями, оборудование сделать в виде блоков с атрибутами, тогда да. А в Вашем варианте извините - предварительной работы (то что описанна выше) больше чем основной - компьютер не умеет догадываться где тут рамка, а где кабель, что там с пересечением кабелей? какие допуски? где искать описание кабеля или оборудования (слева? справа? сверху). Если Вам чертежи дают в таком виде - а Вы за это платите деньги - намекните чтоб они давали их в "нормальном" виде - а не "взорванном". Я не поверю, что их так изначально рисовали.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 27.07.2010, 16:11
#8
olegans


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


Уважаемый Дима ! Обязательно передам привет тем кто рисовал! Клянусь что то что есть так и нарисовано я ни чего не добавлял!
olegans вне форума  
 
Непрочитано 27.07.2010, 16:14
#9
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


ИМХО, Написать лисп, который бы автоматически создавал бы таблицу по указанному образцу если и возможно, то “ОООчень” не просто, во всяком случае, при таких исходных данных. Как, например программно, при большой насыщенности разобрать, что надпись над линией относиться именно к этой линии, а не к соседней. Даже если для этого примера и можно будет написать алгоритм, то с высокой долей вероятности на следующей же схеме алгоритм перестанет работать, или еще хуже отработает с ошибками, которые трудно будут выявить. Вам придется перепроверять результаты каждой работы алгоритма, что займет еще больше времени, чем заполнение таблицы вручную.

Как вариант возможен такой подход работы лиспа:

1. Указываете мышкой текст с данными Порт A
2. Указываете мышкой текст с данными Порт B
3. Указываете мышкой линию соединения и надпись над линией
4. Нажимает Enter сформированные данные занеслись в строку таблицы

после каждого указания текст и линия подсвечивается каким-то цветом, что бы было видно обработанные данные

поправка в п.4 : линии соединяющие порты указывать не надо, указываем лишь текст надписи над линией

Последний раз редактировалось TararykovDG, 27.07.2010 в 16:19.
TararykovDG вне форума  
 
Непрочитано 27.07.2010, 16:27
#10
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Нажмите на кнопочку вставить блок и посмотрите - там среди "мусора" есть и "рабоиче" блоки - но в чертеже их нет (есть но в взорваном виде). Это классика кто-то не хочет чтоб воспользовались "его великими наработками" (не понимаю того, что они кроме как ему, как правило, никому нахрен не нужны) и скорее всего рисует нормально - а Вам отает взорванную копию (при том не умело очистив чертеж). Я этого бреда не понимаю и сталкивался с ним не однократно. А пытаться делать по "этому" какую-либо автоматизацию, из-за тараконов "того" парня - считаю принципиально неправильной позицией, да и даю практически 100% гарантию, что лисп написанный по этому образцу обязательно запнется\ошибется\руганется на первом-же 10-ке "аналогичных".
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 27.07.2010, 16:27
#11
olegans


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


Да нет парни, как говориться - "это долгая дорога в ДЮНЫ" Я полностью согласен с ДИМА_, что надо раисовать изначально правильно. Единственное, что меня удручает, когда я обо все об этом скажу боссу он в свою очередь скажет - "Так покажи им как надо рисовать..." Для начала про блоки с атрибутами а можно поподробней? Или где почитать?
olegans вне форума  
 
Непрочитано 27.07.2010, 16:29
#12
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от olegans Посмотреть сообщение
"Так покажи им как надо рисовать..." Для начала про блоки с атрибутами а можно поподробней? Или где почитать?
на этом форуме тем по данной тематике тьма-тмущая - поиск.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 27.07.2010, 18:18
#13
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Задача не такая и сложная, при элементарных правилах оформления (разнесение по слоям и кабель единая полилиния, а не набор сегментов). просто найти ближайший мтекст к началу, концу и всей полилинии. (однозначность ближайшего мтекста тоже можно записать в правила оформления, тексты разъемов, кабелей, оборудования разнести по слоям). единственная сложность - кабели состоящие из нескольких частей

зы. лисп не знаю и реализовать не смогу))
zamtmn вне форума  
 
Непрочитано 27.07.2010, 19:34
#14
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от zamtmn Посмотреть сообщение
просто найти ближайший мтекст к началу, концу и всей полилинии
Вот эта интересная фраза.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 27.07.2010, 20:10
#15
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
Вот эта интересная фраза.
В смысле? расстояние между двумя точками считать все умеют, расстояние между точкой и отрезком (группой отрезков в случае полилинии) найти не на много сложнее. соответственно ближайшие мтексты и будут искомыми
zamtmn вне форума  
 
Непрочитано 27.07.2010, 20:37
#16
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


напишите мне на любом языке программирования как определить "ближайщий" объект "ко всей полилинии" - задайте ее как угодно, вершинами, векторами и т.д.
р.с. представте себе железную дорогу Москва-Владивосток, к чему она ближе к Москве, Владивостоку, Воронежу, Белгороду? А главное на сколько?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 27.07.2010, 22:08
#17
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
напишите мне на любом языке программирования как определить "ближайщий" объект "ко всей полилинии" - задайте ее как угодно, вершинами, векторами и т.д.
Перебираем полилинии. для каждой полилинии перебираем мтексты. Расстояние до конечных точек вопросов не вызывает? т.е. к чему подключен "кабель" находим без проблем. "убираем" найденные мтексты концов из списка, перебираем оставшиеся и находим мтекст с минимальным расстоянием до полилинии рассматривая полилинию как набор линий и пользуясь например этим - http://algolist.manual.ru/maths/geom.../pointline.php. хотя думаю в лиспе найдется уже готовый метод.

зы. если Вас нужда заставит идти пешком из Воронежа, а затем из Белгорода до путей трассы Москва-Владивосток, чтобы сесть на поезд, думаю вы пойдете по кратчайшему пути и заранье будете знать сколько вам нужно пройти.
zamtmn вне форума  
 
Непрочитано 27.07.2010, 22:35
#18
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Причем тут программирование?

Цитата:
Сообщение от olegans Посмотреть сообщение
такая таблица которая в данный момент заполняется вручную
для таких случаев есть хороший лисп...
Код:
[Выделить все]
((lambda (/ x y z)
  (prompt "\r ")
  (alert "Готовы к трясучке?")
  (setq x 64 y (getvar 'cmdecho) z 1.00)
  (setvar 'cmdecho 0)
  (repeat x
	(command "_.zoom" "_e")
	(command "_.zoom" "_s" z)
	(setq z (- z (/ (- z 0.96) x))))
  (repeat 36
	(mapcar '(lambda(x) (command "_.pan" "0,0" x))
	 '("10,40" "40,-10" "10,-40" "-10,-40" "-40,-10" "-40,10" "-10,40")))
  (setvar 'cmdecho y)
  (alert "Потрясло так потрясло ;)" )
  (princ)))
gomer вне форума  
 
Непрочитано 27.07.2010, 23:12
#19
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


То zamtmn:
Только беда в том что компьютер мерит линейкой, а человек "на глаз" см. пример
Миниатюры
Нажмите на изображение для увеличения
Название: Чертеж1.jpg
Просмотров: 127
Размер:	5.9 Кб
ID:	42914  
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 27.07.2010, 23:25
#20
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


я не говорю про общий случай. в представленном примере ближайший мтекст к полилинии (в идеале точка вставки мтекста должна лежать на полилинии) - это определение кабеля.
zamtmn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > перенос данных из МТекст в таблицу автокада



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных и автокада в эксель evg76 Программирование 31 29.10.2013 14:55
перенос трехмерки АвтоКАДа в ANSYS Yurez ANSYS 8 05.06.2011 20:17
Перенос данных из таблицы Автокада в Excel - дубль2 Таня. AutoCAD 1 02.03.2009 16:08
Вставка фрагментов таблицы из Excel в таблицу Автокада 2006 через буфер обмена - возможно ли? kp+ AutoCAD 3 21.03.2008 10:32