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

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

Возможно ли программно добраться до данных из библиотеки Autocad?

Ответ
Поиск в этой теме
Непрочитано 16.05.2011, 18:36 #1
Возможно ли программно добраться до данных из библиотеки Autocad?
alex8888
 
Инженер
 
Deutschland
Регистрация: 27.04.2009
Сообщений: 208

Доброго всем дня!

Имею параметрический 2D чертеж модели (например фланец) и таблицу семейства с введенными для отображения чертежа значениями параметров (см. рисунки и/или вложенный архив). Библиотека записывается в файл .dbg, параметрические данные для рисования в файл .val, структура этих файлов не сложная, текстовым редактором отлично просматривается и редактируется, проверял.

Подскажите если кто знает, возможно ли программным путем добраться до конкретных значений параметров из файла part1.val? Мне нужно выбрать к примеру высоту H по условию (могут быть разными), для дальнейших расчетов. Число элементов заранее неизвестно, но все данные полные и введены в таблицу семейства.
Если такое возможно, то каков должен быть алгоритм моих действий?

Миниатюры
Нажмите на изображение для увеличения
Название: Parametrisch-SO.jpg
Просмотров: 97
Размер:	65.4 Кб
ID:	59688  Нажмите на изображение для увеличения
Название: Par-SO.jpg
Просмотров: 91
Размер:	63.7 Кб
ID:	59689  

Вложения
Тип файла: zip Bibliothek_B+H.zip (120.5 Кб, 64 просмотров)

Просмотров: 3431
 
Автор темы   Непрочитано 04.08.2011, 09:52
#2
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Подниму снова темку. Может быть кто-то всё-таки подскажет.
Поскольку
Цитата:
Автор ShaggyDoc:

LISP работает только с текстовыми файлами.
, то наверняка с его помощью можно разобраться и в моем случае.

В нижеприведенном файле, записанным как текст (этот файл создается самим автокадом, расширение у него .val), прослеживается жесткая структура. Сначала идут описания чего-то там не интересного, а вот под заголовком [ATTRIBUTES] описываются конкретные поля, которые потом разжёвываются после [EOH]. В [EOH] через ~ перечисляются значения параметров описанных в [ATTRIBUTES] - их ровно столько же по количеству. Оно и понятно.
Вопрос в том, можно ли каким либо образом по заданному значению одного атрибута, например, OD, вычислить или вычленить значения из соответствующей строки [EOH] и получить в переменную для дальнейшей обработки, например, значение H2 или какого то другого? Может кто подскажет алгоритм действий? А то уже всю голову сломал. Не хотелось бы размножать файлы с одинаковым содержанием, но разной структурой, как например этот и то же самое, но в XML, поскольку из последнего получить нужные значения большой проблемы уже не составляет.

Код:
[Выделить все]
[SCHEMA]
14.00
[VERIFICATION]
{A255F99C-3B36-4c0b-96E0-18FFCC0E6564}
[VARIABLES]
[ATTRIBUTES]
C~20~0~(gevmsg gefsrv 103)~RID~~~I~ED~~
C~10~0~(gevmsg gefsrv 104)~REST~~U~I~E~~
C~10~0~(gevmsg gefsrv 102)~PAST~~A~I~E~~
C~25~0~(gefmsg gefstdp 10)~IDN~~~I~A~~
I~0~0~Nennweite~DN~~1~V~A~~
F~0.2~0~Rohr-Anschlussmasse~OD~mm~1~I~A~LENGTH~
F~0.2~0~Aussendurchmesser~D~mm~1~I~A~LENGTH~
F~0.2~0~Aussendurchmesser des Ansatzes~A~mm~1~V~A~LENGTH~
F~0.2~0~Flanschdicke~C2~mm~1~I~A~LENGTH~
F~0.2~0~Länge~H2~mm~1~V~A~LENGTH~
F~0.2~0~Ansatzdicke~N1~mm~1~I~A~LENGTH~
F~0.2~0~Dichtleiste Höhe~F1~mm~1~I~A~LENGTH~
F~0.2~0~Dichtleistungen Durchmesser~D1~mm~1~I~A~LENGTH~
F~0.2~0~Ansatzdicke~S~mm~1~I~A~LENGTH~
F~0.2~0~Ansatzhöhe~H3~mm~1~I~A~LENGTH~
F~0.1~0~Eckenradius~R1~mm~1~I~A~LENGTH~
I~0~0~Schrauben Anzahl~ANZAHL~~1~V~A~~
C~0~0~Schrauben Größe~GROESSE~~M20~V~A~~
F~0.1~0~Lochdurchmesser~L~mm~1~I~A~LENGTH~
F~0.2~0~Lochkreisdurchmesser~K~mm~1~I~A~LENGTH~
[FORMULAS]
[EOH]
U_1~U~A~~10~17.2~90~17.2~16~35~28~2~40~1.8~6~4~4~M12~14~60~
U_3~U~A~~15~21.3~95~21.3~16~38~32~2~45~2~6~4~4~M12~14~65~
U_4~U~A~~20~26.9~105~26.9~18~40~40~2~58~2.3~6~4~4~M12~14~75~
U_5~U~A~~25~33.7~115~33.7~18~40~46~2~68~2.6~6~4~4~M12~14~85~
U_6~U~A~~32~42.4~140~42.4~18~42~56~2~78~2.6~6~6~4~M16~18~100~
U_7~U~A~~40~48.3~150~48.3~18~45~64~2~88~2.6~7~6~4~M16~18~110~
U_8~U~A~~50~60.3~165~60.3~18~45~74~2~102~2.9~8~5~4~M16~18~125~
U_9~U~A~~65~76.1~185~76.1~18~45~92~2~122~2.9~10~6~8~M16~18~145~
U_10~U~A~~80~88.9~200~88.9~20~50~105~2~138~3.2~10~6~8~M16~18~160~
U_11~U~A~~100~114.3~220~114.3~20~52~131~2~158~3.6~12~8~8~M16~18~180~
U_12~U~A~~125~139.7~250~139.7~22~55~156~2~188~4~12~8~8~M16~18~210~
U_13~U~A~~150~168.3~285~168.3~22~55~184~2~212~4.5~12~10~8~M20~22~240~
U_14~U~A~~200~219.1~340~219.1~24~62~234~2~268~6.3~16~10~8~M20~22~295~
U_15~U~A~~250~273~395~273~26~68~292~2~320~6.3~16~12~12~M20~22~350~
U_16~U~A~~300~323.9~445~323.9~26~68~342~2~370~7.1~16~12~12~M20~22~400~
U_17~U~A~~350~355.6~505~355.6~26~68~385~2~430~7.1~16~12~16~M20~22~460~
U_18~U~A~~400~406.4~565~406.4~26~72~440~2~482~7.1~16~12~16~M24~26~515~
U_19~U~A~~450~457.2~615~457~28~72~488~2~532~7.1~16~12~20~M24~26~565~
U_20~U~A~~500~508~670~508~28~75~542~2~585~7.1~16~12~20~M24~26~620~
U_21~U~A~~600~610~780~610~28~80~642~2~685~7.1~18~12~20~M27~30~725~
U_22~U~A~~700~711~895~711~30~80~746~2~800~8~18~12~24~M27~30~840~
alex8888 вне форума  
 
Непрочитано 04.08.2011, 12:08
#3
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Считать файл построчно, сохранить эти строки в список и потом с этим списком разбираться дальше: формировать подсписки, сортировать и т.п.
Do$ вне форума  
 
Автор темы   Непрочитано 04.08.2011, 12:41
#4
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Цитата:
Считать файл построчно
функцией read или какой другой? А как быть со строками, их нумеровать что ли или каждую в отдельную переменную ? Я не знаю заранее количество строк и место начала данных.
alex8888 вне форума  
 
Непрочитано 04.08.2011, 13:55
#5
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от alex8888 Посмотреть сообщение
функцией read или какой другой? А как быть со строками, их нумеровать что ли или каждую в отдельную переменную
Обратитесь за помощью к программисту на ЛИСПе или учите матчасть сами.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 04.08.2011, 14:01
1 | #6
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Код:
[Выделить все]
 (defun file-read (name / fo rl rez_lst)
;;;  (file-read (strcat (getvar "MYDOCUMENTSPREFIX") "\\test.txt"))
  (if (and (findfile name) (setq fo (open (findfile name) "r")))
    (progn (while (setq rl (read-line fo))
	     (setq rez_lst (cons rl rez_lst))
	   ) ;_ end of while
	   (close fo)
	   (reverse rez_lst)
    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of defun
Do$ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Возможно ли программно добраться до данных из библиотеки Autocad?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных из Excel в контекст текста в Autocad rass AutoCAD 34 19.01.2019 01:20
Базы данных и AutoCad tokhot AutoCAD 16 18.05.2018 13:37
Как программно настроить AutoCAD Krieger Программирование 14 10.12.2012 12:31
Проблема подключения файла базы данных в AutoCAD MAP 3D 2010 MANUL AutoCAD 5 01.12.2010 00:39
Трехмерные чертежи в AutoCAD LT. Возможно ли это? TheBuTeK AutoCAD 14 20.10.2005 08:01