|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
В данном случае - скорее всего, ничего. Будет создан отрезок на слое "СлойОтрезка" (если слой не существует на момент вызова кода, слой будет создан с настройками по умолчанию). Для других примитивов (в частности, LWPOLYLINE) порядок следования кодов может оказаться критичным.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
При работе в лиспе - вообще не критично, я думаю. Примитив (если его возможно создать) моментально создается в БД чертежа. Если допустима операция по модификации - то и изменения вносятся.
P.S. Есть разница между установкой свойств через entmod и через ActiveX, но в данный момент они некритичны, мне так каэцца ))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
О, пока сообразил и не забыл: ты отдаешь себе отчет, что примитив отрезка у тебя будет создан только в текущем документе и только в текущем пространстве? То есть если ты находишься в модели, то он будет создан в модели. если активно пространство листа - то в листе. А если ты оказываешься в режиме редактирования блока - то только внутри описания блока? При этом результат может оказаться немного неожиданным, если ты вдруг вошел в контекстное редактирование блока.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Просто в режим контекстного редактирования блока можно войти и "почти случайно" ))) Постарайся учесть такое развитие ситуации.
Учитывая, что ты работаешь только в пространстве модели, не забывай про принудительное указание групп 67 и 410.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Но с тех пор очень многое изменилось. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
Редактирование через базу данных выполняется в следующей последовательности:
(setq nm (car (entsel)) ;Извлечение имени примитива (или иным способом) sp (entget nm) ;Список из базы данных sa (assoc dxf_код sp) ;Извлечение интересующего члена списка (Код параметр) sn (cons dxf_код ...) ;Формирование нового члена (Код Измененный_параметр) sp (subst sn sa sp) ;Замена старого члена на новый ) (entmod sp) ;Обновление базы данных При использовании entmake(x) по логике следует тоже применить entmod. Просмотрев примеры я не обнаружил в них обновления базы данных. Правильно ли я понимаю, что функции entmake, entmakex выполняют действия функции entmod. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Цитата:
По какой логике? Нет. Не путай создание и модификацию уже созданного.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
конструктор Регистрация: 21.07.2007
Петрозаводск
Сообщений: 2,108
|
Подскажите, какой путь решения на ваш взгляд лучше у такой задачи: есть mtext, в нём несколько строк, разделённых "\P", надо получить список строк, например "abc\Pdef\Pjhi" -> ("abc" def" "jhi"). Можно работать только с исходной строкой vl-string-search, можно преобразовать vl-string->list и дальше работать со списком кодов, или надо совсем не так?
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
Разыскал бумажный вариант Полещук Н.Н. Visual LISP и секреты адаптации AutoCAD. - СП.: БХВ-Петербург. Разобрался.
PS Правильно, модификация ![]() ----- добавлено через ~8 мин. ----- Что может entmake сверх того что выполняет entmakex? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Wolkodaw, ты бы хоть примерно написал, чего хотишь получить...
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
Выкладываю свой первый результат наставлений Учителя (посты 2434, 2436, 2438, 2440, 2442 и 2447). Алексей, если найдется время, взгляни, дай замечания и ответь на вопросы:
1. В каких случаях не допускается применение entmakex вместо entmake? 2. Ограничение на точечную пару с кодом -1 прописано в книге Н. Полещука. Распространяется ли это ораничение на точечные пары с кодами 330 и 5? 3. Не понимаю точечную пару с кодом 100. Когда следует ее включать с список? Замена command на entmakex Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Посмотри DXF Reference: в 5 группе хранится Handle объекта (задается самим AutoCAD). 330 - т.н. "мягкий" указатель на созданный объект (тоже от AutoCAD'a). -1 : тоже связано с указателями, насколько я помню (пишу с планшета). Так что задавать эти параметры бесполезно.
Группа 100 необходима при создании сложных примитивов типа полилиний - это точно. Касаемо текстов - кажется, для однострочных его можно пропустить, а для многострочных он обязателен. И разница между entmake и entmakex только в возвращаемом значении в случае успеха: один возвращает список (аналог entget), второй - указатель на созданный примитив. А так больше вроде бы ничего у них и не различается.
__________________
Моя библиотека 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 |