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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен лиспик для превращения текста в атрибут

Нужен лиспик для превращения текста в атрибут

Ответ
Поиск в этой теме
Непрочитано 18.01.2007, 18:31 #1
Нужен лиспик для превращения текста в атрибут
ilka_t
 
Москва
Регистрация: 20.01.2004
Сообщений: 154

Давно за помощью не обращался , просто имеется в чертеже много текста который хочется превратить в атрибут для последующего экспорта в EXEL.
и если ктонибудь возьмется то хотелосбы чтобы можно былобы в начале задать название атрибута
Просмотров: 2965
 
Непрочитано 18.01.2007, 21:20
#2
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


VBA-решение подойдет? Если да, то пропрошу поподробнее (а то чтой-то давно я не писал ничего)
__________________
Number
TextDuplicate
FieldToText
den001 вне форума  
 
Автор темы   Непрочитано 18.01.2007, 22:29
#3
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


то такое VBA не знаю, но если будет работать то пойдет

Суть такая есть много текста однострочного, и из него надо сделать атрибут = исходному тексту, и приетом желательно что бы можно было в начале задать название "TAG"
ilka_t вне форума  
 
Непрочитано 18.01.2007, 23:28
#4
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


VBA - это Visual Basic for Application, другой язык программирования. И немного по-другому внедряется в ACAD.
То есть просто создать вместо текста атрибут с таким же значением, не входящий в состав блока? А смысл?
И что, одно имя атрибута для всех текстовых объектов, или для каждого свое?
__________________
Number
TextDuplicate
FieldToText
den001 вне форума  
 
Непрочитано 18.01.2007, 23:52
#5
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


Ну вот оно, в первом приближении. По минимальной схеме.
Выбираете текст, задаете имя атрибута (одно на всех), текст становится атрибутом. Если чего не так - поправим.
[ATTACH]1169153574.rar[/ATTACH]
__________________
Number
TextDuplicate
FieldToText
den001 вне форума  
 
Непрочитано 19.01.2007, 10:14
#6
VVA

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


> ilka_t А напрямую текст в Эксел почему не хочешь?
VVA вне форума  
 
Непрочитано 19.01.2007, 22:36
#7
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от ilka_t
то такое VBA не знаю, но если будет работать то пойдет

Суть такая есть много текста однострочного, и из него надо сделать атрибут = исходному тексту, и приетом желательно что бы можно было в начале задать название "TAG"
Шедевр от мастеров кисти:

Код:
[Выделить все]
;  by Bell, R. Robert 
(defun C:T2A (/ EntN Ent Tag Pmpt)
(while (not (setq EntN (entsel "\nSelect text: "))))
(if (and
(setq Ent (entget (car EntN)))
(= "TEXT" (cdr (assoc 0 Ent)))
(while (or
(not Tag)
(= "" Tag)
) ;_ closes or
(setq Tag (getstring "\nEnter attribute tag name: "))
) ;_ closes while
(setq Pmpt (getstring "\nEnter attribute prompt: "))
) ;_ closes and
(progn
(entmake
(list
(cons 0 "ATTDEF")
(cons 100 "AcDbEntity")
(assoc 67 Ent) ; model/paperspace
(assoc 410 Ent) ; tab name
(assoc 8 Ent) ; layer name
(cons 100 "AcDbText")
(assoc 10 Ent) ; 1st alignment point
(assoc 40 Ent) ; text height
(assoc 1 Ent) ; attribute value
(assoc 50 Ent) ; text rotation
(assoc 41 Ent) ; relative X scale factor
(assoc 51 Ent) ; oblique angle
(assoc 7 Ent) ; text style name
(assoc 71 Ent) ; text generation flags
(assoc 72 Ent) ; horizontal text justification
(assoc 11 Ent) ; 2nd alignment point
(assoc 210 Ent) ; extrusion direction
(cons 100 "AcDbAttributeDefinition")
(cons 3 Pmpt) ; attribute prompt
(cons 2 Tag) ; attribute tag
(cons 70 0) ; attribute flags (force to normal)
(cons 73 0) ; field length (currently not used)
(cons 74 (cdr (assoc 73 Ent))) ; vertical text justification
) ;_ closes list
) ;_ closes entmake
(entdel (car EntN)) ; delete text
) ;_ closes progn
) ;_ closes if
(princ) ; clean exit
) ;_ closes defun
fixo вне форума  
 
Непрочитано 19.01.2007, 22:38
#8
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


Э-ге-ге-ге-ге-эээй! А заказчик-то где?
__________________
Number
TextDuplicate
FieldToText
den001 вне форума  
 
Непрочитано 20.01.2007, 09:10
#9
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Эх, тряхнуть стариной, что ли?
Код:
[Выделить все]
(defun C:T2Attr ( / adoc util obj prp csp tag attr)
  (setq adoc (vla-get-ActiveDocument (vlax-get-acad-object))
	util (vla-get-utility adoc))
  (vla-getEntity util 'obj nil "Select Text to Convert: ")
  (if (= (vla-get-ObjectName obj) "AcDbText") (progn
      (setq prp (mapcar '(lambda (x) (vlax-get-property obj x)) '(Height InsertionPoint TextString Layer Alignment StyleName ScaleFactor))
	    csp (vla-ObjectIDToObject adoc (vla-get-OwnerID obj))
	    tag (vla-getString util :vlax-false "Enter Tag Text: ")
	    attr (vla-addAttribute csp (car prp) acAttributeModePreset "" (cadr prp) tag (caddr prp)))
      (vla-delete obj)      
      (mapcar '(lambda (x y) (vlax-put-property attr x y)) '(Layer Alignment StyleName ScaleFactor) (cdddr prp)));progn
    (alert "This Is Not a Text"));if
);end
Одно только непонятно - а на хрена нужен одиноко торчащий позорным кукишем в своем пространстве, ни в один блок не вствленный атрибут? Ведь в этом случае не будет видно даже его значения, один только ярлык (tag)
Лентяй вне форума  
 
Непрочитано 20.01.2007, 19:51
#10
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,528
Отправить сообщение для T-Yoke с помощью Skype™


Гуру Lisp, подскажите как набор атрибутов из файла (3 атрибута в виде текстовых строк до 240 символов в каждой) вставить в определенную ячейку Excel-файла. Естественно каждый атрибут в свою ячейу. Чертеж в Автокаде2004-2006 MSoffice 2003.
И главное! На некоторых машинах стоит OpenOffice2.0.4. Можно ли таким же макаром и с ними работать?
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Непрочитано 22.02.2007, 10:26
#11
sergb_lg


 
Регистрация: 22.02.2007
Луганск
Сообщений: 1


для OpenOffice Да можно. На этом сайте где-то модуль лежит.
sergb_lg вне форума  
 
Непрочитано 22.02.2007, 11:11
#12
Кулик Алексей aka kpblc
Moderator

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


Лежит, только он в fas компилирован. Исходников нет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен лиспик для превращения текста в атрибут

Размещение рекламы