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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Пожалуйста, помогите, нужен lisp для выбора объектов

Пожалуйста, помогите, нужен lisp для выбора объектов

Закрытая тема
Поиск в этой теме
Непрочитано 03.04.2013, 23:00 #1
Пожалуйста, помогите, нужен lisp для выбора объектов
macros55
 
Регистрация: 02.04.2013
Сообщений: 24

в чертежа есть многих точки, многих линии и многих других объектов. Нарисуйте многоугольник линию края, выберите линию и автоматические выбрать все точки, многих линии и многих других объектов. Есть ли у вас такое Lisp? Пожалуйста, помогите
Просмотров: 7110
 
Непрочитано 03.04.2013, 23:06
#2
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,997
<phrase 1=


Поскольку речь о Lisp, перемещено в раздел Программирование.

Автору советую попробовать расписать чуть более понятно свой вопрос.

It may be better to write in English?
Солидворкер вне форума  
 
Непрочитано 03.04.2013, 23:18
#3
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Может, Выделение объектов в области контура, AutoCAD или LISP.Выделение объектов в области контура поможет?
skkkk вне форума  
 
Автор темы   Непрочитано 03.04.2013, 23:54 очень спасибо
#4
macros55


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


очень спасибо skkkk

Последний раз редактировалось macros55, 04.04.2013 в 01:41.
macros55 вне форума  
 
Автор темы   Непрочитано 07.01.2016, 11:34
#5
macros55


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


друзей нужны ЛИСП.
При выборе нескольких объектов.
касаясь всех объектов выбраны.
Команда FS недействительным,потому что выбор одного объекта.
больше, чем нужно
macros55 вне форума  
 
Непрочитано 07.01.2016, 13:42
#6
Кулик Алексей aka kpblc
Moderator

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


Что, простите?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.01.2016, 14:15
#7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,041


Offtop: Человек с говорящим ником macros третий год просит написать ему лисп
Сергей812 вне форума  
 
Непрочитано 07.01.2016, 14:29
#8
Admin
Administrator


 
Регистрация: 21.08.2003
Сообщений: 4,409


Offtop: Он просто через переводчик пишет, как может.
Admin вне форума  
 
Автор темы   Непрочитано 07.01.2016, 15:26
#9
macros55


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


Naprimer commanda FS(fastsell) mojno sellect tolko odin obyekt...a mne nujno sellect neskolko obyet
macros55 вне форума  
 
Непрочитано 07.01.2016, 15:35
#10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,041


FS:Будет несколько взаимопересекающихся объектов - выделит несколько. Чего вообще нужно то?
Сергей812 вне форума  
 
Автор темы   Непрочитано 07.01.2016, 15:59
#11
macros55


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


Все, что касается много выборного него, чтобы выбрать БЛОК,
macros55 вне форума  
 
Непрочитано 07.01.2016, 16:02
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,041


выборного него? Пока не сформулируете вопрос полностью и вразумительно, в развернутом виде - никто не даст ответа.
Сергей812 вне форума  
 
Непрочитано 07.01.2016, 16:17
#13
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от macros55 Посмотреть сообщение
Naprimer commanda FS(fastsell) mojno sellect tolko odin obyekt...a mne nujno sellect neskolko obyet
Может быть SelSIM Александра Ривилиса?
Попробуй сформулировать вопрос на родном для себя языке.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.01.2016, 17:16
#14
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Выборного ЕГО.
Profan вне форума  
 
Автор темы   Непрочитано 08.01.2016, 10:49
#15
macros55


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


Код:
[Выделить все]
 (defun c:ns (/ ss xs ls i ob n so) (vl-load-com)
  (if (setq ss (ssget))
    (progn
      (setq xs (ssget "x") ls (ssadd) i (sslength ss))
      (repeat i
        (setq ls (ssadd (setq ob (ssname ss (setq i (1- i)))) ls))
        (repeat (setq n (sslength xs))
          (if (not (minusp (vlax-safearray-get-u-bound (vlax-variant-value
                (vla-Intersectwith (vlax-ename->vla-object ob)
                (vlax-ename->vla-object (setq so (ssname xs
                (setq n (1- n))))) 0)) 1)))
            (setq ls (ssadd so ls)))
        )
      ) (sssetfirst nil ls)
    )
  ) (princ)
)
проблем это Выберите несколько объектов и запуске SELECTSIMILAR все объект выбранный и запуске Lisp(NS)не работает.

ещё проблем (NS) запуске выбирать несколько объект и запуске ENTER все объект выбранный на этот раз blok Не выбрано

Последний раз редактировалось Кулик Алексей aka kpblc, 08.01.2016 в 11:52.
macros55 вне форума  
 
Непрочитано 09.01.2016, 18:10
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Пробуй
Код:
[Выделить все]
 (defun c:ns (/ ss xs ls i ob n so) (vl-load-com)
  (if (setq ss (ssget "_I"))
    (progn
      (setq xs (ssget "_x" (list(cons 410 (getvar 'CTAB)))) ls (ssadd) i (sslength ss))
      (repeat i
        (setq ls (ssadd (setq ob (ssname ss (setq i (1- i)))) ls))
        (repeat (setq n (sslength xs))
          (if
            (VxGetInters
            (vlax-ename->vla-object ob)
            (vlax-ename->vla-object (setq so (ssname xs (setq n (1- n)))))
            acExtendNone
            )
            (setq ls (ssadd so ls))
            )
        )
      ) (sssetfirst nil ls)
    )
  ) (princ)
)

;
; -- Function VxGetInters
; Returns all intersection points between two objects.
; Copyright:
;   ©2000 MENZI ENGINEERING GmbH, Switzerland
; Arguments [Type]:
;   Fst = First object [VLA-OBJECT]
;   Nxt = Second object [VLA-OBJECT]
;   Mde = Intersection mode [INT]
;         Constants:
;         - acExtendNone           Does not extend either object.
;         - acExtendThisEntity     Extends the Fst object.
;         - acExtendOtherEntity    Extends the Nxt object.
;         - acExtendBoth           Extends both objects.
; Return [Type]:
;   > List of points '((1.0 1.0 0.0)...[list]
;   > Nil if no intersection found
; Notes:
;   - None
; 
(defun VxGetInters (Fst Nxt Mde / IntLst PntLst)
 (setq IntLst (vlax-invoke Fst 'IntersectWith Nxt Mde))
 (cond
  (IntLst
   (repeat (/ (length IntLst) 3)
    (setq PntLst (cons
                  (list
                   (car IntLst)
                   (cadr IntLst)
                   (caddr IntLst)
                  )
                  PntLst
                 )
          IntLst (cdddr IntLst)
    )
   )
   (reverse PntLst)
  )
  (T nil)
 )
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 10.01.2016, 00:34
#17
macros55


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


VVA очень спасибо

----- добавлено через ~36 мин. -----
VVA ещё проблем отметки нас есть разные и потом что разные отметки он не работает..только же работу в отметки..
macros55 вне форума  
 
Непрочитано 10.01.2016, 10:23
#18
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от macros55 Посмотреть сообщение
отметки нас есть разные и потом что разные отметки он не работает
Предварительно Z или уровень всех объектов нужно привести к одному числу (Z=0). Смотри Z0
Другие варианты можно посмотреть здесь LISP. Обнуление координаты Z (аналог FLATTEN )
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 10.01.2016 в 16:51.
VVA вне форума  
 
Автор темы   Непрочитано 10.01.2016, 15:07
#19
macros55


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


Я должен разных проектов отметки, а это невозможно там все отметки 0
macros55 вне форума  
 
Непрочитано 10.01.2016, 16:49
#20
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Код:
[Выделить все]
(defun c:ns (/ ss xs ls i ob n so)
  (vl-load-com)
  (if (setq ss (ssget "_I"))
    (progn
      (setq xs (ssget "_x" (list (cons 410 (getvar 'CTAB))))
	    ls (ssadd)
	    i  (sslength ss)
      )
      (repeat i
	(setq ls (ssadd (setq ob (ssname ss (setq i (1- i)))) ls))
	(repeat	(setq n (sslength xs))
	  (if
	    (and
	      (vlax-write-enabled-p
		(vlax-ename->vla-object
		  (setq so (ssname xs (setq n (1- n))))
		)
	      )
	      (not
		(minusp
		  (cdr
		    (assoc
		      62
		      (entget
			(tblobjname "Layer" (cdr (assoc 8 (entget so))))
		      )
		    )
		  )
		)
	      )
	      (vlax-write-enabled-p (vlax-ename->vla-object ob))
	      (VxGetIntersZ0
		(vlax-ename->vla-object ob)
		(vlax-ename->vla-object so)
		acExtendNone
	      )
	    )
	     (setq ls (ssadd so ls))
	  )
	)
      )
      (sssetfirst nil ls)
      (princ "\nSelect ")
      (princ (sslength ls))
      (princ " primitives")
    )
    (alert "Please, select primives first")
  )
  (princ)
)

;;;;
;;;; -- Function VxGetInters
;;;; Returns all intersection points between two objects.
;;;; Copyright:
;;;;   ©2000 MENZI ENGINEERING GmbH, Switzerland
;;;; Arguments [Type]:
;;;;   Fst = First object [VLA-OBJECT]
;;;;   Nxt = Second object [VLA-OBJECT]
;;;;   Mde = Intersection mode [INT]
;;;;         Constants:
;;;;         - acExtendNone           Does not extend either object.
;;;;         - acExtendThisEntity     Extends the Fst object.
;;;;         - acExtendOtherEntity    Extends the Nxt object.
;;;;         - acExtendBoth           Extends both objects.
;;;; Return [Type]:
;;;;   > List of points '((1.0 1.0 0.0)...[list]
;;;;   > Nil if no intersection found
;;;; Notes:
;;;;   - None
;;;; 
(defun VxGetIntersZ0 (Fst Nxt Mde / IntLst PntLst Fst1 Nxt1)
  (setq	Fst1 (vla-copy Fst)
	Nxt1 (vla-copy Nxt)
  )
  (foreach n '(1e99 -1e99)
    (vla-move Fst1
	      (vlax-3d-point (list 0 0 0))
	      (vlax-3d-point (list 0 0 n))
    )
    (vla-move Nxt1
	      (vlax-3d-point (list 0 0 0))
	      (vlax-3d-point (list 0 0 n))
    )
  )
  (vl-catch-all-apply
    '(lambda ()
       (setq IntLst (vlax-invoke Fst1 'IntersectWith Nxt1 Mde))
     )
  )
  (vla-delete Fst1)
  (vla-delete Nxt1)
  (cond
    (IntLst
     (repeat (/ (length IntLst) 3)
       (setq PntLst (cons
		      (list
			(car IntLst)
			(cadr IntLst)
			(caddr IntLst)
		      )
		      PntLst
		    )
	     IntLst (cdddr IntLst)
       )
     )
    )
    (T nil)
  )
  (reverse PntLst)
)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 12.01.2016 в 10:36. Причина: см #29
VVA вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Пожалуйста, помогите, нужен lisp для выбора объектов

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите студенту )! Нужен интересный, креативный план дома для Дипломной работы. dengrits1 Поиск литературы, чертежей, моделей и прочих материалов 4 07.02.2012 14:04
Помогите пожалуйста рассчитать стальную петлю на изгиб borisovev11 Конструкции зданий и сооружений 55 29.11.2011 16:19
Помогите пожалуйста с отоплением Mishan13 Отопление 3 27.10.2011 12:29
Помогите пожалуйста советом по гидроизоляции. SanjkaK Конструкции зданий и сооружений 10 09.08.2011 17:35
Помогите пожалуйста найти поперечник вагона с углём МишаИнженер Поиск литературы, чертежей, моделей и прочих материалов 16 05.08.2011 18:54