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

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

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

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

Подскажите как заполнить короб(кабельканал) проводниками. Например дано короб 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 Кб, 20 просмотров)


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

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


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

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для 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 28 14.07.2023 19:27
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