|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166
|
Ну, мне кажется это немного не то...
Вот получил я наконец-то активный вьюпорт на листе: Код:
ActiveSpace к нему не применяется видимо. Хочется сделать как-то поаккуратнее, поскольку командный вариант: Код:
Команда: Выберите дугу:_PSPACE Команда: Укажите начало выноски: Повторный вход в LISP невозможен. Неверная точка. Укажите начало выноски: Последний раз редактировалось mkung, 24.06.2014 в 14:44. |
|||
![]() |
|
||||
получил !BLKDEF
#<VLA-OBJECT IAcadBlock 21b35494> далее (vla-GetAttributes BlkDef) ; ошибка: ActiveX Server возвратил ошибку: неизвестное имя: GetAttributes ... что то не понял, как добраться до описания отрибута внутри описания блока? одна из мыслей: описание блока - это коллекция примитивов, поэтому надо vlax-for item? ... где то в строках 12-18 пишет ; ошибка: слишком мало аргументов не могу понять где. хотя понял (wcmatch (strcase (vla-get-objectname ent) "*ATTR*")) такогй функции не знал - закоментил - заработало
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ну правильно, писал без проверок (не успевал). Вот более верный вариант:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
ага, лишняя скобка потерялась
![]() только в таком виде мне все равно не надо, у меня в файле надо было обработсть под 2 стони блоков, что благополучно и сделал. Спасибо за помощь ![]()
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... Последний раз редактировалось Vladimir_Sergeevich, 24.06.2014 в 15:26. |
||||
![]() |
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166
|
Добрый день.
Пытаюсь посчитать количество вьюпортов на активном листе. Написал: Код:
Пробовал разные варианты: со скобками и без, подставлять переменную, предварительно созданную CONS - ничего не помогает. Если подставить тупо (410 . "Первый лист") - то все нормально. В чем тут дело? И второй вопрос. У меня на одном листе 2 экрана, на втором еще 3. Если моя программка отрабатывает, то длину набора выбора пишет для первого листа 3, а для всего чертежа 8. Чего туда еще добавляется? Ну и, может быть, как получить именно количество вьюпортов? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
(ssget "_x" (list '(0 . "VIEWPORT") '(67 . 1) (cons 410 xx)))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
При таких условиях, как в коде, только VIEWPORT и попадут.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166
|
Цитата:
У меня на одном листе 2 экрана, на втором еще 3. Если моя программка отрабатывает, то длину набора выбора пишет для первого листа 3, для второго 4, а для всего чертежа (без имени листа) 8. Получаю из набора по условию в коде (через sslength) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Если хочешь получить все ВЭ - убери группу 410. См.DXF Reference
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166
|
Цитата:
Но при подсчете по программе для одного листа получаемое значение на 1 больше реального количества ВЭ, а для всего чертежа - на 3. На листе без ВЭ показывает 1. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Насколько я помню, один "виртуальный" ВЭ создается при активации пространства. Но не уверен - надо в справке копаться, а у меня сейчас нет времени
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 21.04.2009
Тюмень
Сообщений: 97
|
Цитата:
(setq object_block (vlax-ename->vla-object (car (entsel)))) (setq object_block (vlax-safearray->list (vlax-variant-value (vla-GetDynamicBlockProperties object_block)))) (setq temp (vlax-variant-value (vla-get-value (nth 0 object_block)))) разобрал полностью, и по моей логике если последнюю строчку изменить на: (vla-put-value (nth 0 object_block) 2000) динамический блок должен стать не 1000 как исходный, а 2000 мм. Но он не становится таким. Выдает ошибку ; ошибка: Ошибка Automation. Неверный ввод. Что я неправильно понимаю в изменении свойства? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Скорее всего, первый параметр не может принимать значение 2000. И посмотри http://www.caduser.ru/forum/index.ph...D=44&TID=36703 (сейчас перекину те коды на autolisp.ru - поскольку на caduser.ru уже черт-те сколько не появляюсь).
--- Перекинул: http://autolisp.ru/2014/06/27/dynblocks-parameters/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 27.06.2014 в 14:39. |
|||
![]() |
|
||||
Регистрация: 21.04.2009
Тюмень
Сообщений: 97
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166
|
Добрый день.
При печати из модели по умолчанию Автокад устанавливает масштаб печати "Вписать". Есть пользователи, которые печатают "не глядя" (благо просмотр удобоваримый). Можно ли программно установить скажем 1:100? Чтобы отметка "Вписать" была уже осознанным действием. Заранее благодарен. |
|||
![]() |
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
Добрый день!
Подскажите, пожалуйста, как получить путь к папке из которой был запущен лисп? Допустим, есть лисп D:\LISP\Lisp.lsp Мне нужно, чтобы после запуска лиспа он смог определить своё местоположение. На выходе нужно "D:\LISP"
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Средствами lisp'a - нереально. Александр Ривилис когда-то писал приложение GetLispInfo, но оно было для бог знает какого ACAD'a, и потом не развивалось (уточню: приложение писалось по моей просьбе; но потом надобность в нем отпала. Я и не стал Александра попусту терроризировать).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Крайне сложно - в теории лисп вобще не факт что откуда-то загружен (он может быть сгененирован другим лиспом). Самим лиспом никак (если только сделать специальный лисп который будет следить за системой). Поищи - уже обсуждалось.
з.ы. - ух уже понаписали...
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |