|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
ShaggyDoc,
спасибо за ответ. 1. Ну а с механикловскими командами (начинаются с AM...) имеет смысл программировать? Или там тоже такие же "обертки"? 2. Можно ли при вводе запрашиваемого числа ввести буквенный символ, чтобы произошло ветвление программы, типа если вместо числа пользователь нажал "S" (например), то программа запросила бы ввести дополнительное число? Примерно так: (initget 1 "S") (setq p1 (getpoint "\nВведите точку или [Stuffe]:")) (if (= p1 "S") (setq p2 (getpoint "\nВведите точку 2")) ); end if ;далее тело основной функции |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
1. Сугубо ИМХО: команды вертикальных решений дрессировке поддаются весьма слабо.
2. См. ключи initget (конкретнее - биты).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
alex8888, вряд ли стоит связываться с вертикальными решениями. Там многое зависит от того, как "оформлена" команда. Там ведь не только свои дополнительные команды, но и свои объекты, отсутствующие в AutoCAD создаются.
Если у этой системы есть документированный интерфейс для программирования, тогда можно попробовать. Однако не изучив общих азов это заведомо бесполезно. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
ShaggyDoc, Кулик Алексей aka kpblc,
спасибо за объяснение. В целом же чистый астокад и механикал сильно отличаются в плане программирования? Например, программы из ветки http://forum.dwg.ru/showthread.php?t=5887&page=4 по отрисовке объемных тел ни одна не пошла. Ошибки пишет разные. В основном, не нравятся какие-нибудь команды, например, _.view. Если введу _.-view, то проходит выполнение дальше, но при этом требует ввода локализованных параметров, английские берет, но определять их вслепую надо (подсказки нет). Как можно "заставить" lisp-программу выполнить команду, записанную в другом лисп-файле? Не хочу изобретать велосипед, если есть возможность воспользоваться уже готовыми библиотеками из Ру-када, да и самому тоже хотелось бы немного пооптимизировать и не набирать в каждой программе один и тот же текст. Мысль подгружать их все при загрузке автокада не проходит - в Ру-каде слишком много функций, да и не известно на 100%, что понадобится. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
По стандартным командам: вообще-то они все должны работать. По "заставить выполнить другой lisp" - а что там сложного? Загрузить оба лиспа, и в первом вызывать функцию, определенную во втором. Ничего сложного...
P.S. Эта технология в книге "САПР на базе..." описана очень подробно, насколько я помню. P.P.S. Сейчас уже всерьез задумываюсь о написании лиспа, который будет выдавать всю "подноготную" какой-либо lisp-функции...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Цитата:
![]() Цитата:
![]() Цитата:
Прошу прощения за назойливость ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Способ есть. В "Готовых программах" посмотри - там был вариант загрузки всех приложений из указанного каталога.
P.S. Насчет "подноготной"... Тот вариант, который я задумал, недостаточно универсальный - некоторые ограничения накладываются (в частности, к именам функций, которые надо отслеживать).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Кулик Алексей aka kpblc, ShaggyDoc,
вот наваял: (defun c ![]() ;************funktion error******************** (defun *error*(msg) (princ msg) ;text bei error (if oldosm (setvar "OSMODE" oldosm)) ;if oldosm - zadano -> oldosm=oldosm (if oldlay (setvar "CLAYER" oldlay)) ;if layer gewechselt -> zurьck ); end of *error* ;*****************Parametry privjazki******************** (setq oldosm (getvar "osmode")) (setvar "osmode" 0) (setq oldlay (getvar "clayer")) ;*****************Input Znachenij*********************** (vl-load-com) ; Не знаю - надо ли? далее будет команда vl-cmdf (initget 7) (setq pl_L (getreal "\nLдnge: ")) ;get Lдnge (initget 7) (setq pl_B (getreal "\nBreite: ")) ;get Breite (setq pl_1 (getpoint "\nInput Start Point: ")) ;lower left point ;****************Raschet******************************** (setq pl_2 (polar pl_1 0 pl_L)) ;lower right point (setq pl_3 (polar pl_2 (/ pi 2.0) pl_B)) ;upper right point (setq pl_4 (polar pl_3 pi pl_L)) ;upper left point (setq pl_o (polar pl_1 (/ pi 4.0) (* 10.0 (sqrt 2.0)))) ;point fьr offset ;****************Ramen********************************** (command "_.pline" pl_1 pl_2 pl_3 pl_4 "_c" "") ;draw rectangle (setq pl_rahmen (entlast)) ;save rectangle ;****************Postroenie offset********************** Как сделать, чтобы при отсутствии layer "SF-RAHMEN" он был бы создан? (command "_.chprop" "_last" "" "_layer" "SF-RAHMEN" "_c" "_bylayer" "");change layer+color (vl-cmdf "_.offset" 10 pl_rahmen pl_o "") ;offset ;***************Bemassung***************************** (setq pl_h (list (+ (car pl_4) (/ pl_L 2.0))(+ (cadr pl_4) 40))) (setq pl_v (list (- (car pl_1) 40)(+ (cadr pl_1)(/ pl_B 2.0)))) (vl-cmdf "_.layer" "_s" "AM_5" "") (command "_.dimlinear" pl_4 pl_3 pl_h) (command "_.dimlinear" pl_1 pl_4 pl_v) (princ) ;**************Zurьck peremennye*********************** (setvar "osmode" oldosm) (setvar "clayer" oldlay) );end defun VVA , а основной язык (немецкий) у меня не накроется? Ведь только связка русский-английский или немецкий-английский работают. Поддержка русского у меня стоит, но для юникода первым идет немецкий, если ставлю русский - все умляуты (д,ц,ь,Я) пропадают. Если только для меня, то особо не напрягает, а вот если для документации? Последний раз редактировалось alex8888, 29.04.2009 в 11:42. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
[quote=alex8888;389383],
Когда публикуешь код, ставь птичку "Отключить смайлы в тексте" в "Дополнительных опциях" Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Как создать именованную систему координат, если в текущем файле рисунка вообще нет таких систем координат?
Желательно через функцию entmakex. Какие (по минимуму) dxf коды нужны для создания именованной ucs? Как получить координаты текущей системы координат относительно мировой? |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
VVA,
спасибо, понял. Насчет кодовых страниц вопрос пока открытый (У меня виста 64х бизнес немецкая). Кулик Алексей aka kpblc, Цитата:
![]() |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
alex8888, Ну так экспортировать сущестующие значения реестра, импортировать и посмотреть, если что вернуть назад.
По идее в этой части Цитата:
Цитата:
DwgRuLispLib: Команда. Загрузка lisp файлов из указанной папки
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Offtop: VVA, вот и тебя "размножили"
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Цитата:
![]() VVA, попробовал поменять кодовые страницы - результат: ![]() 1. исчезли все умляуты, вместо них русские буквы; 2. в автокаде как были иероглифы и знаки вопроса, так и остались. То есть, системные установки кодовых страниц еа автокад не влияют. Где то спрятано глубже. Последний раз редактировалось alex8888, 30.04.2009 в 14:37. |
|||
![]() |
|
||||
VVA, спасибо что отвечаете на все вопросы которые я тут задал.
И ещё чуть-чуть: У Кулик'a Алексея aka kpblca, в видео vlideworks он в теле функции defun создаёт ещё одну функцию типа defun. Из видео мне не понятно зачем, и как она будет работать. В каких случаях удобно создавать такие: Код:
|
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Ну это локальные функции. Особенно удобно, если надо переопределять обработчик ошибок именно внутри какой-то своей функции. Ну или рекурсию, например, применить...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 11.12.2007
Москва
Сообщений: 295
|
Взялся за Лисп. Читаю эту тему с начала. Если кого не затруднит, назовите посты или ссылки на описание функций на русском языке. Или быть может есть в Автолисп справка как родная но на русском?
п.с. понимаю что вопросы уже тут шумевшие не раз. Если что удалите мой пост, но получив в личку ответ был бы признателен. ![]()
__________________
Live as though tomorrow you will die, Study as though you will live eternally. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |