| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Кулик Алексей aka kpblc, Ну ты хотя бы намеки давай какого типа функцию искать. Это же для меня планета Марс.
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Red Nova, см. (getcorner)
Shoorup, еще раз внимательно посмотри, что возвращает (entsel).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Red Nova,
Хорошо. Пока будем считать, что пользователь вводит нужные нам данные с клавиатуры. В ответ на запрос (setq width (getreal "Введите ширину колонны <Выход>: ")) пользователь может ввести: 1. Пустой ввод (клавиша Enter) 2. 0 3. Положительное число 4. Отрицательное число Мы должны запретить вводить ему п. №№ 1;2;4. Т.е. только полижительные числа. Подсказка: см. ф-цию initget
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Кулик Алексей aka kpblc, entsel выдает имя выбранного объекта и координаты точки которые я указал на этом объекте. Получается мне мешают эти координаты?
т.е мне нужно сделать так Код:
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
|
||||
Получилось!!!
надо так: Код:
__________________
Поезд который устал от ржавого здравомыслия рельсов... Последний раз редактировалось Shoorup, 22.07.2008 в 17:16. |
||||
|
||||
VVA, Из справки
Цитата:
То есть где-то мы должны написать Код:
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Red Nova, #67
1. Initget действует на 1 запрос get* (getint, getreal и т.п. в helpe есть табличка) 2. Вытекает из п.1 перед каждым getreal. Запусти эти 2 строчки в VLIDE на выполнение и попробуй ввести что-нибудь недопустимое (кроме ESC)
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
VVA,
Тогда наверное лисп должен выглядеть так Код:
Цитата:
Цитата:
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Так
Код:
Дальше нужно запросить точку отрисовки и отрисовать колонну
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Молодец, Red Nova. Вопросы всё более разумные.
Совет: Сделай VLIDE своим постоянным инструментом. Может быть даже кнопочкой. Создай в редакторе пустой файл и вставляй в него фрагменты кода. Сохрани файл в папочку, созданную в "подходящем месте" под именем, например, "эксперименты.lsp". В дальнейшем все свои Лиспы сохраняй во всякие подпапки этой папки. Выделенные фрагменты кода из "экспериментов" отправляй на выполнение в AutoCAD кнопочкой "загрузить выделенный фрагмент". В окно "Консоль" будут возвращаться результаты. Их можно выделить и скопировать в окно программы и спрятать за комментариями. Чтоб наглядно видеть результат. Для начала можно и код более наглядно писать. Например, вводить переменные: Так пишет профи: Код:
Код:
Успехов! |
|||
|
||||
VVA,
Думаю как-то так Код:
ShaggyDoc, Постараюсь работать с VLIDE, хотя пока совсем не понял что там к чему. Цитата:
__________________
Блог Последний раз редактировалось Red Nova, 22.07.2008 в 20:26. |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
А вообще-то надо начинать не с кодирования, а с постановки задачи. То есть с составления "плана". Его можно сразу писать в иде комментариев, а потом постепенно реализовывать. Грамотная постановка - половина дела.
Например, для колонны сразу надо решать: 1. Одна ли это колонна, или целый ряд (одна как частный случай)? Как потом одну размножать, если ряд под каким-то углом? 2. Что это за точка вставки по отношению к самой колонне? Центр? Но центр не всегда известен, может быть и колонна с нулевой привязкой к оси. Тогда центр придется как-то еще вычислять. 3. Что это за "ширина" и "толщина"? У колонны есть два размера, но их надо как-то правильно назвать. Например "размер вдоль ряда", "размер поперек ряда". и т.д. Пиши сначала постановку, пусть примитивно. Например: Код:
|
|||
|
||||
ShaggyDoc,
Ну этому тоже надо еще поучиться. Получается три из пяти пунктов уже реализованы.
__________________
Блог |
||||
|
||||
Цитата:
Цитата:
Ну попробую обьяснить что называется "от чайника чайнику" 1. Нужна книга Полещука которая упоминалась выше. Там по каждой функции мало того что можно почитать но и увидеть вполне толковый пример. 2. Лично я разбираю с внутренних функций, т.е. то что будет выполняться первым. А первым будет выполняться (entsel). Как я писал выше этим мы получим уникальное имя и координаты туда где ткнули при выборе текста. Для профилактики вводи в комстроке по функционально и смотри что возвращает функция. (entget(car(entsel))) тут entget выведет нам все "свойства" выбранного объекта, но в качестве аргумента ему нужно имя выбранного объекта. А так как у нас (entsel) дает по мимо имени еще и координаты (которые мешают - слишком много аргументов)то их можно "отсечь" вот так: (car(entsel)) - тоже попробуй ввести с carи без и посмотри что возвращается. assoc 41эта функция вытянет нам необходимое свойство в виде точечной пары - в данном случае коэффициент сжатия. (assoc 41(entget(car(entsel)))) - вводишь это и тебе вернется (41 . 0.8) например - это точечная пара, про точечные пары читай Полещука там все очень понятно. Ну а так как нам нужно лишь получить коэфициент сжатия то нужно "отсечь" то что впереди. Делаем это с помощью cdr в итоге получим 0.8 Вот и всё! проще некуда Но лично я "досямкал" только с подачи Алексея так что по сути я разобрался только в том что мне написали
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
В дополнение к #74: раскрою "секрет", как я пишу свои лиспы. Сначала defun и придуманное имя функции. Потом в комментарии прописываю, что функция делает, какие параметры принимает, что возвращает. А там уже и код можно делать. В любой момент возвращаюсь в начало файла и смотрю - а то ли я делаю?
__________________
Моя библиотека 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 |