AutoLisp logand logior
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLisp logand logior

AutoLisp logand logior

Ответ
Поиск в этой теме
Непрочитано 15.05.2014, 14:06 #1
AutoLisp logand logior
Веселин
 
Регистрация: 15.05.2014
Сообщений: 42

Научите пользоваться. Прочитал, что можно проверять полилинию на замкнутость. Все что я знаю, это (70 . 1).
Просмотров: 1986
 
Непрочитано 15.05.2014, 16:34
1 | #2
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Готово!
__________________
Алексей
bargool вне форума  
 
Непрочитано 15.05.2014, 16:44
1 | #3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


От http://forum.dwg.ru/showpost.php?p=6...postcount=1040 и далее
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 15.05.2014, 20:53
#4
Веселин


 
Регистрация: 15.05.2014
Сообщений: 42


А, вон оно аж где! Какая огромная тема. Надеюсь найду там ответ на свой вопрос. Как logand и logior оперируют логическими значениями, я и так знал. Но как это применяется для проверки полилинии на замкнутость? Чуток полистал, ответа пока не вижу. Может есть краткий пример, если не трудно?
(logior 10 12 1) вот эти числа 10 12 1, здесь что означают?
Веселин вне форума  
 
Непрочитано 15.05.2014, 22:05
1 | #5
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


к своему стыду, не понимаю смысл пользоваться ф-ей logior logand, но если в смысле поучиться, то гугль или Полещук функции
car, cadr и прочие car-ы
entsel
entget
assoc
if
defun
setq
это как бы по простому.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 15.05.2014, 22:20
1 | #6
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от nolte Посмотреть сообщение
не понимаю смысл пользоваться ф-ей logior logand
полезно для чтения диалоговык окон как альтернатива спискам
gomer вне форума  
 
Непрочитано 15.05.2014, 22:28
#7
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


Спасибо gomer, попробую разобраться
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 15.05.2014, 22:42
1 | #8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Веселин Посмотреть сообщение
Может есть краткий пример, если не трудно?
Не трудно
Код:
[Выделить все]
(defun C:TEST ( / en)
  (and
    (setq en (car(entsel "\nSelect polyline: ")))
    (if (= (logand (cdr(assoc 70 (entget en))) 1) 1)
      (alert "Polyline closed")
      (alert "Polyline open")
      )
    )
  (princ)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.05.2014, 23:44
#9
Веселин


 
Регистрация: 15.05.2014
Сообщений: 42


VVA Убрал logand из примера, результат тот же.
Код:
[Выделить все]
 (defun C:TEST ( / en)
  (and
    (setq en (car (entsel "\nSelect polyline: ")))
    (if (= (cdr (assoc 70 (entget en))) 1)
      (alert "Polyline closed")
      (alert "Polyline open")
      )
    )
  (princ)
  )
Не нашел выгоды от logand в данном примере.
Веселин вне форума  
 
Непрочитано 15.05.2014, 23:54
1 | #10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Веселин, вызови команду _pedit и сгладь (_fit) замкнутую полилинию. Попробуй снова мой и свой вариант.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.05.2014, 00:39
1 | #11
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


да весело.
свойство closed работает нормально.
Код:
[Выделить все]
 
(defun C:TEST1 ( / en)
    (setq en (car(entsel "\nSelect polyline: ")))
    (if (zerop (cdr(assoc 70 (entget en))))
      (alert "Polyline open")
      (alert "Polyline closed")
     )
  (princ)
  )
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 16.05.2014, 00:53
1 | #12
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Примеры из справки
Код:
[Выделить все]
 (logand 7 15 3) = (logand (+ 1 2 4) (+ 1 2 4 8) (+ 1 2)) ==> (+ 1 2) = 3
(logand 2 3 15) = (logand 2 (+ 1 2) (+ 1 2 4 8)) ==> 2
(logand 8 3 4) = (logand 8 (+ 1 2) 4) ==> 0
gomer вне форума  
 
Автор темы   Непрочитано 16.05.2014, 08:20
#13
Веселин


 
Регистрация: 15.05.2014
Сообщений: 42


Цитата:
Сообщение от VVA Посмотреть сообщение
_pedit и сгладь (_fit)
Теперь разницу вижу. Всем спасибо за подсказки!
Особенно VVA, сам бы я ни за что не догадался.
Веселин вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLisp logand logior

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература по AutoLISP на русском языке PeterPeter LISP 43 22.09.2015 10:33
AutoLisp. Можно использовать компилированные функции на других диалекта? Kirill_Ja LISP 8 03.05.2013 13:52
Квадрантное представление окружности на AutoLISP v1talka LISP 39 29.02.2012 14:25
Как отладить нейтив и менеджед код в COM объекте который используется из AutoLISP? lexluther LISP 1 12.08.2009 08:37
Функции в AutoLISP Briz06 LISP 4 14.10.2006 13:25