|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
28.08.2014, 13:28 | #1 | |
Как сделать, что бы текст атрибута вписывался в рамку
Регистрация: 26.12.2013
Сообщений: 284
|
||
Просмотров: 3423
|
|
||||
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
|
Ширина многострочного атрибута лежит в 41-й паре первой с конца.
Я рекомендую заранее при создании блока задавать ширину для многострочных атрибутов (это можно сделать в редакторе блоков). Далее немножко кода: Код:
Единственное - в версиях до 2014 у меня частенько эти ширины слетали. Решение - руками править описание блока. Все вхождения правятся автоматом. Если вообще не вмоготу хочется менять программно, можно через ActiveX Код:
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения. Последний раз редактировалось Kirill_Ja, 01.09.2014 в 00:59. Причина: Дополнил чутка |
|||
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
Только только начал изучать - понял, что просто LISP не потянет полную автоматизацию.
В целом для того, что бы разобраться и быть как рыба в воде в Ваших функциях потребуется время- куда деваться (будем изучать). Закидаю вопросами с Вашего позволения: 1) А где можно взять полный список точечных пар? для: Мтекста, линий, дин блоков, вхождений блоков? 2) А вообще как заполучить самую полную информацию о примитиве/блоке? 3) Я так понимаю капаются в библиотеках Када. К примеру Supermax доходит до 4-5 списка вложенности в точечных парах при этом знает, что есть что. Как этого достигнуть(изучить)? 4) ActiveX дает нам все свойства и методы - только до сюда дочитал книгу)) 5) Есть ли лит-ра(в продаже) по программированию свежих версий(от 2012) Акада? Дааа - и спасибо за ответ по теме!!! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Н-да?
Цитата:
(entget (car (entsel)) '("*")) Вообще-то нет. Цитата:
Читай дальше Язык AutoLISP / VisualLISP с тех пор не претерпел практически никаких изменений.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
Был заблокирован. За код спасибо (где-то я его уже находил, но потерял)
Тоже спасибо только там не разобраться мне ))) на текущий момент. Угу - в книге примерно так и было написано (ActiveX расширяет возможности- примерно так) Далее тема не касается текущей и меня могут опять заблокировать)) - да простит меня модератор! В ICQ писал Вам(Пардон не Вам): Вставлен блок Команда: (entget (car (entsel)) '("*")) Выберите объект: ((-1 . <Имя объекта: 7ffffb10a10>) (0 . "INSERT") (5 . "3941") (102 . "{ACAD_XDICTIONARY") (360 . <Имя объекта: 7ffffb125f0>) (102 . "}") (330 . <Имя объекта: 7ffffb159f0>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbBlockReference") (66 . 1) (2 . "*U14") (10 225.656 188.534 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0)) Хотел посмотреть св-ва которые можно поменять: Команда: (vl-load-com) Команда: (setq vlo1 (vlax-ename->vla-object (entsel))) Выберите объект: ; ошибка: неверный тип аргумента: lentityp (<Имя объекта: 7ffffb10a10> (225.813 188.355 0.0)) Либо неверный тип, либо мало переменных. Почему так? И забываю спросить- как понять Вижу (41 . 1.0) - единственную в списке. Если только... . Кстати как получить список из пары? CDR CAR получат остатки от пары. И еще Команда: TG_ATR_ENTMOD ; ошибка: слишком мало аргументов ----- добавлено через ~57 мин. ----- Есть два блока с одинаковыми атрибутами (многострочный, имя одинаковое) В 1 получается изменить значение программно при этом он является многострочным Во 2 не получается. В свойствах вижу разницу (отмечено зеленым) + в текстовом файле при вставке \P (с новой строки) для блока 1 все работает, а для 2 нет. Вот и вопрос, что я такого случайно сделал? И как это делать не случайно ))) Последний раз редактировалось tujn08, 03.09.2014 в 10:02. |
|||
|
||||
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
|
Это тот случай когда хорошо закоментированный код решает 2/3 вопросов. Когда-нибудь научусь)))
Итак: Цитата:
Цитата:
Код:
Функция Код:
А вот у атрибутов как раз есть 2-я 41-я пара, но для сложных объектов удобнее ActiveX. Функция (entsel) выдает не только имя примитива, но координаты куда ткнули курсором (так же как (ssget)), поэтому код Код:
По поводу Цитата:
И еще рекомендую пользоваться редактором vlide. Все равно к этому придешь. Лучше сразу и начинать.
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения. |
|||
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
Код тот же, но для правильности понимания и экспериментов немного изменил (добавил имена атрибутов для поиска и замены)
Имеем: форматку в которой надо(хочу): все поля заполнять из файла. Справа эксперементальный блок там тоже есть многострочные атрибуты- какие-то из них не меняются так же, а какие-то меняются. Файл для чтения данных в программе значится тут e:\\temp.txt (приложен). По Вашему ответу - на что-то раскрыли мне глаза(напомнив об этом ) Отступление от темы: Кроме того, что получится менять значения многострочных Атрибутов - бывают моменты когда текст очень длинный и придется писать функцию по изменению интервала и сужения. Дальше: В форматке видим фамилии с подписями как дин блок. Что бы не ходить во крут да около - программно из реестра буду брать данные о текущем пользователя (разраб) и менять блок под него. \Пров\ - по должности выше \разраб\ из БД в программе или файле. \ГИП\ и \Н.контр\ из файла. Суммарно- надо менять видимость блока внутри блока (надо изучать, а как иначе ) ну и Мтекст (как выяснилось атрибуты не везде спасут) ----- добавлено через ~48 мин. ----- Зашел сюда: http://autolisp.ru/2014/06/27/dynblocks-parameters/ (вставка ссылки не сработала) И опять Команда: (_kpblc-get-dyn-block-list-prop-and-values) ; ошибка: слишком мало аргументов Каких аргументов не хватает не понимаю |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать зачеркнутый текст | Mzw | AutoCAD | 14 | 07.02.2022 11:28 |
Как сделать текст с подчеркиванием? | ilka_t | AutoCAD | 34 | 19.06.2018 12:26 |
Взорвать текст, сделать тип линии | konstruktor | AutoCAD | 13 | 31.05.2009 13:38 |
Все поля преобразовать в текст. Как это сделать? | Pave1 | AutoCAD | 4 | 11.08.2006 12:45 |
Как сделать обьемный текст в AutoCAD? | Russsian | AutoCAD | 10 | 12.10.2005 12:37 |