|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
Снова здравствуйте!
В продолжение предыдущего вопроса. Необходимо либо выбрать объект, либо сразу ввести значение, возможно ли такое? Т.е. в переменную записывается либо сам объект, либо любое введенное значение. Например, вводим число 5, в переменную записалось число 5. Если щелкнули мышью по объекту, записалось имя объекта. Код:
Никто не подсказывает, пришлось думать самому. Воткнул в initget возможные варианты значений от 0 до 10 с шагом 0.1. Возможно и глупо, но теперь можно выбрать либо объект, либо ввести необходимое значение, сразу. Код:
__________________
слесарь САПР |
|||
|
||||
Регистрация: 15.06.2014
Сообщений: 10
|
Здравствуйте, друзья! Необходима ваша помощь
Нашел в интернете полезный LISP - создающий выноску с именем блока, немного адаптировал под себя, т.к. необходимо было чтобы на выноске отображалось не имя блока а название видимости. Проблемы начинаются когда у блока много атрибутов - вместо названия видимости на выноске отображается ###. Так понимаю вся проблема в строке: ">%).Parameter(1).VisibilityState>%", как только видимость перестает быть параметром номер 1 - отображается ###. Пытался с помощью субфункций от LeeMac реализовать вставку значения не путем ссылки, а просто вставки текста = название видимости, пусть даже они не будут связаны ссылкой на параметр объекта. В общем мне необходимо понять, что нужно исправить в нижнем коде, в который я добавил функции от LeeMac, а именно что нужно написать вместо: "AcDbBlockVisibilityParameterEntity"(в исходной версии:"%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid pline)) ">%).Parameter(1).VisibilityState>%") Рабочий код: Код:
Код:
|
|||
|
||||
Регистрация: 15.06.2014
Сообщений: 10
|
Сергей812, нашел недостающую скобку, теперь lisp загружается, но при исполнении и выборе динамического блока выдает ошибку: неверный тип аргумента: lentityp 1 (хотя прежняя версия мое сообщение выше, выносила выноску, я просто изменил ссылку, добавив возможные варианты текста и через if и получение ID параметра видимости)
P.S. скобку в конце все-таки убрал с ней не запускалось, видимо программа закрывается чуть раньше. Код:
|
|||
|
||||
Регистрация: 15.06.2014
Сообщений: 10
|
Сергей812, да потерял кусок кода, вот обновленный код, собираю его из разных кусков как вслепую конструктор, поскольку в lispе практически не понимаю,
результатом такого метода тыка ошибка теперь приобрела следующий вид: неверный тип аргумента: VLA-OBJECT nil Код:
|
|||
|
||||
Доброго.
Подскажите плиз можно ли повесить блок на курсор и при этом заранее иметь возможность задать его размер. Если делать командным методом то блок повесится на курсор в размере 1:1, а размер будет задан после этого. (command "_.Insert" "BMP Dot" pause 100 100 "") То есть веся на курсоре блок будет иметь неправильный размер. Если же сперва вставить блок в точку с нулевыми координатами в нужном размере, а затем использовать "._move" (command "._move" dot "" '(0 0) pause) То от курсора к точке (0 0) будет видна направляющая, что не есть гут.
__________________
Блог |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
а если activex использовать - vla-move ?
Во всяком случае, в том же NETAPI это задача решается установкой нужного масштаба при первичной вставке в текущее пространство через BlockReference.ScaleFactors с последующей передаче в JIG, который уже и таскает вставку. А командные методы лиспа - это такой черный ящик по сути) |
|||
|
||||
А в vla-move можно делать паузу на user input?
__________________
Блог |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
вообще то имел в виду grread в цикле... Не знаю правда, насколько это мерцать будет - в NET мерцания не заметно особо во время JIG. Т.е. вставляете блок в нужном масштабе тоже через ActiveX, и потом запрашиваете через ggread текущие координаты указателя и подтаскивайте туда вставку блока. И какой то выход из цикла предусмотреть, естественно.
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Код:
Позаботиться о возможных атрибутах. Последний раз редактировалось ShaggyDoc, 23.06.2017 в 19:49. |
|||
|
||||
ShaggyDoc vl-cmdf "_.INSERT" работает, спасибо. Многократно вставлять мне необходимости не было, сделал по простому.
Код:
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ага, но в последних версиях (начиная с 2015, кажется) vl-cmdf независимо ни от чего возвращает t, а command (равно как и command-s) - nil. Так что учтите
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Вот это новость. А как же теперь убедиться, что команда отработала? В случае со вставкой блока ясно - отслеживаем появление или непоявление нового объекта в базе чертежа. Но ведь не все команды создают объекты. Печально в общем. Придется пересмотреть логику некоторых программ, в которых не уйти от командных методов.
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |