|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
Этот форум почитайте для начала)
Offtop: Если эта строка - например, мультитекст в чертеже.. То в полях выбираете тип "объект", а затем через дополнительную кнопку-саму строку. Там вывалится список свойств выбранного объекта.. выбрать там значение |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Такой вопрос возник. Знает ли кто, какой командой AutoCad выполняет редактирование текста мультивыноски?
----- добавлено через ~1 ч. ----- UPD. Разобрался. При выделенной мультивыноске _MLEADERCONTENTEDIT ----- добавлено через ~3 ч. ----- Спасайте, товарищи. Мозг сплавил. Как сделать так, чтобы после выполнения лиспа остались выделенные объекты? |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
Может так ?
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Или через sssetfirst
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Получилось и через _pselect и через sssetfirst
Собственно, добился от мультивыноски, чтобы она работала как надо с заменой слоя. Выкладываю варик с _pselect. С удовольствием выслушаю замечания Код:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
копаться вглубь лень, но строчка 3 - почему не проверяете, существует ли уже данный слой? Проверяется одной строчкой вида (tblsearch "LAYER" %Имя слоя%) - если вернула nil, то тогда создаем. Иначе - просто делаем слой активным через "CLAYER". Естественно, перед этим значение нужно сохранить (setq lOldLayer (getvar "CLAYER")) и в строке 18 восстановить из этой переменной.
|
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Цитата:
Но и в этом варианте, думаю, достаточно будет _layerp, без переменных |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 02.02.2015
Сообщений: 22
|
Прежде чем написать вопрос, я поискал. Большая часть тем ссылается на пару существующих программ lispа. Но дело в том, что те программы создавались для других целей, и для того что бы узнать атрибуты в некоторых случаях надо подключать до пяти функций.
Поэтому и задал такой вопрос, в надежде что кто то скажет что типа "....эта команда выдает атрибуты блока по его имени". |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Такой команды нет. Получить указатели на атрибуты конкретного вхождения блока возможно - и любой пример это показывает.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
блок по сути -это контейнер, куда можно напихать примитивов, определений атрибутов и т.д. Так как структура данных никак не фиксирована - то получить и как-то работать с ними можно только последовательно.. начиная с верхнего уровня - вставки блоки..
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
gomer, я отвечал на вопрос
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 02.02.2015
Сообщений: 22
|
Итак, товарищи, почитал по форуму еще раз, теперь скажите прав я или нет.
получается что имя атрибута блока, всегда следует за блоком. И зная имя блока, с помощью команды entnext мы можем узнать имя атрибута. А уж из имени атрибута достать все его данные не сложно. Вопрос в том, всегда ли соблюдается это условие, что за именем блока следует имя атрибута? и не бывает ли это каким то образом перемешано? Если этот способ получения атрибутов блока надежный, то он меня устраивает. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
Дальше идут не какие то примитивы - а атрибуты)
Цитата:
|
|||
|
||||
Помогите идеей пожалуйста. Есть чертеж трубы, создаваемой спец прогой, на нам надо найти два одинаковых числа и одно из них заменить. в общем случае все работает, за одним исключением.
1.нахожу в таблице отметку в поле Н8 (0 TEXT) 2.нахожу оба текста с этим значением (ssget "_X" (list (cons 0 "TEXT") (cons 1 val_h8))) ;;тут val_h8 - текстовая строка 3.изменяю тот, что не в таблице (их однозначно два и проверяю по точке вставки. например программа выдает 125,24, а надо Н8=125,24) Есть один момент, когда это не срабатывает: когда отметка 125,20. В таблице она пишется как есть с двумя знаками, а на разрезе, где надо добавить "Н8=" хвостовые ноли подавляются и соответственно "125,20" /= "125,2" Как еще можно реализовать подобный поиск? з.ы. (rtos x 2 2) так же выдает без подавления - проверил сразу... хоть впору сначала все числа обработать, что бы везде до 2х знаков было.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Используй нечто типа (strcat "H8=" <Текстовая строка>)
Здесь <Текстовая строка> - прямо тот текст, который получаешь откуда надо.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |