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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как доработать лисп по определению массы и объема 3D Solid

Как доработать лисп по определению массы и объема 3D Solid

Ответ
Поиск в этой теме
Непрочитано 09.08.2017, 10:20 #1
Как доработать лисп по определению массы и объема 3D Solid
Маккс
 
Регистрация: 27.10.2009
Сообщений: 31

Уважаемые Господа,
к сожалению не нашел ответа на интересующий меня вопрос и заранее прошу великодушно меня простить если я неверно интерпретировал результаты поиска
Прошу Вас, пожалуйста, помочь мне доработать следующий lisp
на данный момент программа определяет объем и массу 3d Solid-а и выводит данные в текстовую строку.
Прошу Вас сделать вывод полученных данных в текст в указанную точку.
Код:
[Выделить все]
 (defun c:z-sp ( / den idx key obj sel vol sp text1 )
(setq key "LMac\\solprop-density")
(if (or (setq den (getdensity key))
(setq den (setdensity key))
)
(while
(progn
(setvar 'errno 0)
(initget "Multiple Density Exit")
(princ (strcat "\nCurrent density: " (rtos den 2) " kg/m\U+00B3"))
(setq sel (entsel "\nSelect edge of solid object [Multiple/Density/Exit]: "))
(cond
( (= 7 (getvar 'errno))
(princ "\nMissed, try again.")
)
( (or (null sel) (= "Exit" sel))
nil
)
( (= "Density" sel)
(setq den (setdensity key))
)
( (= "Multiple" sel)
(if (setq sel (ssget '((0 . "3DSOLID"))))
(showdensity den
(repeat (setq idx (sslength sel))
(setq vol
(+ (cond (vol) (0.0))
(vla-get-volume (vlax-ename->vla-object (ssname sel (setq idx (1- idx)))))
)
)
)
)
)
)
( (not (vlax-property-available-p (setq obj (vlax-ename->vla-object (car sel))) 'volume))
(princ "\nSelected object does not have Volume property.")
)
( (showdensity den (vla-get-volume obj)))
)
)
)
)







(princ)
)
(defun showdensity ( den vol )
(setq vol (/ vol 1e9))
(prompt
(strcat
"\nProperties for a solid object at " (rtos den 2 2) " kg/m\U+00B3 :"
"Volume = " (rtos vol 2 2) " m\U+00B3"
"Weight = " (rtos (* den vol) 2 2) " kg"
)
)
)


(defun getdensity ( key / den )
(if (and (setq den (getenv key))
(setq den (distof den 2))
(< 0 den)
)
den
)
)
(defun setdensity ( key / def tmp )
(initget 6)
(if (setq def (getdensity key)
tmp (cond ((getreal (strcat "\nSpecify density (kg/m\U+00B3)" (if def (strcat " : ") ": ")))) (def))
)
(setenv key (rtos tmp 2))
)
tmp
)

(vl-load-com) (princ)
(c:sp)
Заранее Вам благодарен
Максим
Просмотров: 1198
 
Непрочитано 09.08.2017, 12:30
#2
Кулик Алексей aka kpblc
Moderator

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


В каком месте трудность возникает?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как доработать лисп по определению массы и объема 3D Solid

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструирование в 3D Serz AutoCAD 87 28.10.2014 10:40
найти 3D Solid нужного типа АлексЮстасу AutoCAD 1 06.06.2012 19:16
можно ли 3D Solid (3-мерное тело) вставить в Tool Palettes (панель инструментов)? АлексЮстасу AutoCAD 1 02.11.2011 20:57
3D surfaces (not meshes) в - 3D SOLID ?????? Startrek AutoCAD 2 30.06.2004 14:47