Schöck
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Lisp. Заполнение короба(кабельканала) проводником

Lisp. Заполнение короба(кабельканала) проводником

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 07.07.2016, 11:32 #1
Lisp. Заполнение короба(кабельканала) проводником
sdv79
 
Инженер ЭОМ
 
Москва
Регистрация: 05.03.2009
Сообщений: 213
Отправить сообщение для sdv79 с помощью Skype™

sdv79 вне форума Вставить имя

Подскажите как заполнить короб(кабельканал) проводниками. Например дано короб 10(высота)х4(ширина), диаметры проводников (2.6 2.1 1.5 1.5)
Для заполнения лотка использовал
Код:
[Выделить все]
 
  (setq otstup_X 0)
  (foreach Dn  *Dn ; вида *Dn (2.6 2.1 1.5 1.5) 

   (setq Rn       (/ Dn 2.0)   
         otstup_X (+ otstup_X  Rn)
   ) ;/ setq
   (vla-AddCircle ; круг 
     ModelSpace
     (vlax-3d-point ; точка вставки
       (+ (nth 0 point) otstup_X)    ; координата X
       (+ (nth 1 point) Rn)          ; координата Y
       0                             ; координата Z
     ) ;/ vlax-3d-point
     Rn ; радиус вида 16.2
  ) ;/ vla-AddCircle
  (setq otstup_X (+ otstup_X  Rn)) ; доводим отступ до диаметра 
 ) ;/ foreach


Вложения
Тип файла: dwg
DWG 2007
Тест.dwg (187.1 Кб, 13 просмотров)


Последний раз редактировалось sdv79, 07.07.2016 в 11:39.
Просмотров: 1504
 
Непрочитано 08.07.2016, 02:24
#2
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,755


Используй это
Nike вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 08.07.2016, 09:22
#3
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 213
Отправить сообщение для sdv79 с помощью Skype™


Спасибо. Расчет у меня выполняется. Графически хочется показать пользователю как заполняется короб в разрезе.
Смог заполнить пока только первый ряд. Как перейти к заполнению последующего ряда?
Код:
[Выделить все]
 
; входные данные

(setq ADocument (vla-get-ActiveDocument
	          (vlax-get-acad-object)
	         ) ;/ vla-get-activedocument
      ModelSpace (vla-get-ModelSpace  ADocument)
) ;/ setq
(setq wirina 4.0
      visota 10.0
) ;/ setq
(initget 1) ; запрещен enter
(setq point (vl-catch-all-apply
              (function GetPoint)
              (list "Укажите точку вставки для разреза") 
            ) ;/ vl-catch-all-apply
) ;/ setq
 (setq *Dn (list 2.6 1.4  1.4)); (setq *Dn (list 2.6 2.1 1.5 1.5)) (setq *Dn (list 2.6 2.1 1.5 1.5 1.4))




  ; расчетная часть
  (setq otstup_X    0
	otstup_Y    0
	ostatok_X   wirina
	Dn_cons     nil
	Dn_ok_cons  nil

  ) ;/ setq

  (while (/= *Dn nil)
   (setq Dn   (car *Dn)
	 *Dn  (cdr *Dn)
	 Rn   (/ Dn 2.0) 
	 Dn_cons (cons Dn Dn_cons)
   ) ;/ setq

   (cond
    (
     (>= ostatok_X  Dn)
   (setq otstup_X  (+ otstup_X  Rn)
	 otstup_Y  (+ otstup_Y  Rn)
   ) ;/ setq

     
   (vla-AddCircle
     ModelSpace
     (vlax-3d-point                ; точка вставки
       (+ (nth 0 point) otstup_X)  ; координата X
       (+ (nth 1 point) otstup_Y)  ; координата Y
       0.0                         ; координата Z
    ) ;/ vlax-3d-point
    Rn                             ; радиус вида 16.2
  ) ;/ vla-AddCircle
  (setq otstup_X    (+ otstup_X   Rn) ; доводим отступ до диаметра кабеля
	otstup_Y    (- otstup_Y   Rn)
	ostatok_X   (- ostatok_X  Dn)
	Dn_cons     (cdr Dn_cons)
	*Dn         (append Dn_cons *Dn)
	Dn_cons     nil
	Dn_ok_cons  (cons Dn  Dn_ok_cons)  ; для следующего слоя(ряда)
  ) ;/ setq
 )) ;/ cond

; Как перейти к заполнению последующего ряда?

  
 ) ;/ while


Последний раз редактировалось sdv79, 08.07.2016 в 09:30.
sdv79 вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Lisp. Заполнение короба(кабельканала) проводником

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает lisp на autocad 2014. Lisp предназначен для изменения порядкового номера листа vladykinalex LISP 13 11.09.2015 10:06
Lisp. Не вставляет значения в базу access. Zaghim LISP 2 11.07.2012 14:29
LISP. Как запустить LISP программу при создании чертежа по шаблону? (Автоматическое заполнение основной надписи) Do$ LISP 25 22.06.2011 15:39
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||