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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужна программа: штамп -> база данных

Нужна программа: штамп -> база данных

Ответ
Поиск в этой теме
Непрочитано 20.12.2004, 14:27 #1
Нужна программа: штамп -> база данных
Torino
 
Штаб
Регистрация: 21.08.2003
Сообщений: 943

Существует ли программа, которая делает следующее:
запрашивает местоположение штампа в чертеже, затем извлекает данные из штампа и заносит их в текстовый файл?
Просмотров: 6237
 
Непрочитано 20.12.2004, 14:53
#2
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Если допустим штамп представляет из себя блок с атрибутами, то вроде никаких проблемм нет. Нашел нужный блок, считал значения атрибутов с соответствующими тегами и записал в файл. Если нет готового, то такое за пол часа пишется (если конечно нет каких нибудь "замороченных" требований).
{Smirnoff} вне форума  
 
Непрочитано 20.12.2004, 15:05
#3
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Если штамп "нарисован" примитивами и не содержит многострочного текста, то можно попробовать: "Функцию экспорта данных из таблиц «нарисованых» примитивами, из Autocad в Excel"
со страницы: http://www.uniip.ru/start.html#conte.../download.html
Alaspher вне форума  
 
Автор темы   Непрочитано 20.12.2004, 15:37
#4
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


>>Fantomas
Штамп вычерчен примитивами. Поэтому вариант с блоком не подходит.
А замороченных требований нет
Только пока не пиши программу - я попробую программу Alaspher'a.

>>Alaspher
По описанию - то, что надо! Сейчас попробую.
Torino вне форума  
 
Автор темы   Непрочитано 20.12.2004, 15:43
#5
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


>>Alaspher
Абсолютно то, что надо. Спасибо!
Torino вне форума  
 
Непрочитано 20.12.2004, 16:10
#6
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Завсегда, пожалуйста!
(русский эквивалент - You are welcome!)
8)
Alaspher вне форума  
 
Непрочитано 20.12.2004, 18:06
#7
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>Torino
Цитата:
Только пока не пиши программу
Ну хорошо, хорошо, если ты так просишь пока небуду
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 21.12.2004, 12:02
#8
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Чтобы не подчищать полученые данные набросал программку.
Она записывает выделенный текст в строки текстового файла, который потом легко импортировать в Эксель (разделитель запятая):

Код:
[Выделить все]
(defun c:text_to_file (/ flag kword filename ent txt)
  (vl-load-com)
  (setq olderr *error*)
  (setq *error* catcherr)
  (initget "Yes No")
  (setq
    kword (getkword "\nПерезаписать существующий файл? [Yes/No] <N>: "
	  )
  )
  (setq filename "c:\\export.txt")
  (if
    (or (= kword "No") (= kword nil))
     (progn
       (setq file (open filename "a"))
       (princ "\n" file)
     )
     (setq file (open filename "w"))

  )

  (setq flag T)
  (while flag
    (initget "New eXit")
    (setq ent (entsel "\nВыберите текст или [New/eXit]: "))
    (cond
      ((= ent "eXit")			;cond 01
       (progn
	 (close file)
	 (exit)
       )				;end progn
      )					;end cond 01
      ((= ent "New")			;cond 02
       (princ "\n" file)
      )					;end cond 02
      ((/= ent nil)			;cond 03
       (progn
	 (setq txt (cdr (assoc 0 (entget (car ent)))))
	 (if
	   (or
	     (= txt "TEXT")
	     (= txt "MTEXT")
	   )
	    (progn
	      (princ
		(strcat
		  ", "
		  (vla-get-textstring (vlax-ename->vla-object (car ent)))
		)
		file
	      )
	      (princ
		(vla-get-textstring (vlax-ename->vla-object (car ent)))
	      )
	    )				;end progn
	 )				;end if
       )				;end progn
      )					;end cond 03
    )					;end cond
  )					;end while
  (close file)


)

(defun catcherr	(msg)
  (princ "\nЗавершение программы...")
  (setq *error* olderr)
  (close file)
)
Torino вне форума  
 
Непрочитано 21.12.2004, 12:40
#9
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Torino
Чтобы не подчищать полученые данные набросал программку.
Она записывает выделенный текст в строки текстового файла, который потом легко импортировать в Эксель...
Наверное, иногда это удобно, но в общем случае, мне кажется, проще в экселе "причесать" избыточные данные, чем поштучно кликать отдельные тексты.
Alaspher вне форума  
 
Автор темы   Непрочитано 21.12.2004, 13:08
#10
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Дело в том, что у меня есть около 150 файлов с 3...4 чертежами в каждом.
Необходимо извлечь из штампа номер, подсооружение и название листа для составления ведомости чертежей.
tbltoex создает для каждой таблицы свой Excel.Application
Ты представляешь 150х3=450 открытых Экселей?
И это ради трех строчек...

Но программа твоя полезная!
Torino вне форума  
 
Непрочитано 21.12.2004, 14:27
#11
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Torino
tbltoex создает для каждой таблицы свой Excel.Application
Ни, она так не делает - что-ж я варвар! Она получает Excel.Application, так что если он уже запущен, то используется имеющийся.
Цитата:
Ты представляешь 150х3=450 открытых Экселей?
И это ради трех строчек...
Нет, не представляю , но оно так и не получится - получится 150 файлов по 3 листа в каждом (понятно, что неудобно, но делал для других целей) - в одном сеансе таблицы выкидываются в один файл, на разные листы.
Alaspher вне форума  
 
Автор темы   Непрочитано 21.12.2004, 18:36
#12
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Сейчас сообразил: вместо разделителя-запятой, лучше поставить какой-нибудь другой значок, например " | ".
Т.е. в строке
Код:
[Выделить все]
      (strcat
        ", "
        (vla-get-textstring (vlax-ename->vla-object (car ent)))
      )
заменить запятую на |
Torino вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужна программа: штамп -> база данных

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск