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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как отловить в чертеже линии по углу с десятичными знаками

Как отловить в чертеже линии по углу с десятичными знаками

Ответ
Поиск в этой теме
Непрочитано 04.03.2008, 15:06 #1
Как отловить в чертеже линии по углу с десятичными знаками
Borikv
 
Регистрация: 24.10.2007
Сообщений: 108

Как отловить в чертеже линии, имеющие угол , с кучей десятичных знаков после запятой. Quick select-Line-Angle не срабатывает, т.к. требует конкретной величины
Просмотров: 1469
 
Непрочитано 04.03.2008, 15:20
#2
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,097


Почему не подходит?
Два раза надо запускать. Первый раз из всего чертежа с параметром угла <больше, чем> и опцией "Включить в набор"
Второй раз - из выбранного, с параметром угла <меньше, чем> и опцией "Исключить из набора" Вроде, так.
Хмурый вне форума  
 
Автор темы   Непрочитано 04.03.2008, 15:35
#3
Borikv


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


Работает, спасибо.
Может ещё есть варианты?
Borikv вне форума  
 
Непрочитано 04.03.2008, 16:22
#4
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 10,954


лиспик просишь для такого????.... %)
__________________
Век живи, век учись - ...
Bull вне форума  
 
Автор темы   Непрочитано 04.03.2008, 16:34
#5
Borikv


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


Цитата:
Сообщение от Bull Посмотреть сообщение
лиспик просишь для такого????.... %)
Ну если возможно......
Borikv вне форума  
 
Непрочитано 04.03.2008, 23:35
#6
Кулик Алексей aka kpblc
Moderator

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


Нечто типа такого?
Код:
[Выделить все]
(defun sel-by-ang (ang             prec            /
                   selset          res             dwgru-conv-pickset-to-list
                   dxf10           dxf11
                   )
                  ;|
*    Выбор отрезков с указанным углом и точностью.
*    Параметры вызова:
	ang	угол, градусов. nil недопустим
	prec	точность. nil -> 1e-6
*    Примеры вызова:
(sel-by-ang 3.8 0.7)
(sel-by-ang 0.5 nil)
|;

  (defun fun_conv-ang-to-under-pi (ang)
    (cond
      ((< ang 0.) (fun_conv-ang-to-under-pi (+ ang pi)))
      ((> ang pi) (fun_conv-ang-to-under-pi (- ang pi)))
      (t ang)
      ) ;_ end of cond
    ) ;_ end of defun

;;; ************************************************************************
;;; * Библиотека DWGruLispLib Copyright ©2007  DWGru Programmers Group
;;; *
;;; * _dwgru-conv-pickset-to-list
;;; *
;;; * 03/12/2007 Версия 0001. 
;;; ************************************************************************

  (defun dwgru-conv-pickset-to-list (value / lst item)
;;; Назначение:
;;; Преобразовывает набор (pickset) в обычный список имен примитивов (ename)
;;; Низкоуровневая функция. Контроль соответствия типов не производится

;;; Параметры: 
;;; value - набор (pickset) или nil если пустой набор
;;; Возврат:
;;;   - список примитивов (Ename)
;;;; Пример
    ;|
(setq point (vla-addpoint (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-3d-point '(0 0 0))))
(_dwgru-conv-pickset-to-list (ssget "_L")) ;_(<Имя объекта: 7ef85e00>)
(_dwgru-conv-pickset-to-list (ssadd)) ;_nil
  |;
    (repeat (setq item (sslength value)) ;_ end setq
      (setq lst (cons (ssname value (setq item (1- item))) lst))
      ) ;_ end repeat
    lst
    ) ;_ end of defun

  (if (and ang
           (setq ang (/ (* ang pi) 180.))
           (setq selset (ssget "_:L" '((0 . "LINE"))))
           (or prec (setq prec 1e-6))
           ) ;_ end of and
    (progn
      (setq res (ssadd))
      (foreach item (dwgru-conv-pickset-to-list selset)
        (setq dxf10 (cdr (assoc 10 (entget item)))
              dxf11 (cdr (assoc 11 (entget item)))
              ) ;_ end of setq
        (if (equal (fun_conv-ang-to-under-pi (angle dxf10 dxf11)) ang prec)
          (setq res (ssadd item res))
          ) ;_ end of if
        ) ;_ end of foreach
      (if (> (sslength res) 0)
        (sssetfirst res res)
        ) ;_ end of if
      ) ;_ end of progn
    ) ;_ end of if
  (princ)
  ) ;_ end of defun
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.03.2008, 10:19
#7
Borikv


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


Что-то очень умное. Как пользоваться то?
Borikv вне форума  
 
Непрочитано 05.03.2008, 10:49
#8
Кулик Алексей aka kpblc
Moderator

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


Как использовать лисп - dwg.ru/art/8. А в комментариях - примеры вызова.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как отловить в чертеже линии по углу с десятичными знаками

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как выделить и изменить конкретные линии с заданными параметрами а не весь чертеж оптом Шаман Растаманов AutoCAD 8 15.03.2011 20:09
как в solidworks, на чертеже, сделать авто заполнение графы масса jeniabell SolidWorks 12 09.09.2009 11:33
Принтер печатает на чертеже название файла! Как убрать? ТРУП AutoCAD 8 24.10.2008 17:42
КАК исправить тип линии mvart AutoCAD 4 21.11.2007 13:27