Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Воздуховоды динамич блоками
Диалог специалистов АВОК > ФАЙЛОТЕКА СПЕЦИАЛИСТА > Программы, расчеты > AutoCAD for HVAC
Страницы: 1, 2, 3
Axel
Всвязи с переходом на новое место работы у меня совершенно нет времени на доработку моего варианта динблоков. И в ближайшее обозримое будущее времени этого не будет. С глубокой печалью выкладываю некоторые новшества и идеи которые придумал, но в ближайшее время не воплощу. Блок решетки не доделал, т.е. доделал, но загубил.
То Glam, главным образом выкладываю для тебя. Может быть применишь что-нибудь из предложенного в своем творении. Основная идея в том чтобы быстро менять тип всей сети воздуховодов со всей фасониной и прочим прилагающимся. А также одним движением получать ту же трассу в виде 1д для дальнейшего преобразования в аксонометрию с помощью программы "инженерная сантехническая аксонометрия" и иже с ней.

Надеюсь что буду находить время на доработку своих полуфабрикатов(с), но не очень в это верю smile.gif
glam
Axel, быстро глянул твою задумку. Идея ясна, но я ее не одобряю - то что ты хочешь воплотить на мой взгляд явно лишнее. При создании динблоков надо руководствоваться принципом разумной достаточности, даже при всей моей любви к универсальности и мультиваринатности, предоставляющей пользователю максимум удобства. А в моем понимании внедрение вида 1D а-ля магикад в систему динблоков для быстрой отрисовки вентсистем не входит. Сделать это можно и даже будет не сложно, но честно не вижу в этом смысла - c магикадом соревноваться задачи совершенно не стоит. Любую даже очень сложную вентсеть можно за несколько минут обвести полилинией. При твоем подходе собранную вентсеть придется скопировать в отдельное место, выставить ей вид 1D, затем взорвать, потом воспользоваться AksPro и в сухом остатке получить эти несколько минут сомнительной экономии. В общем я б еще 10 раз подумал перед тем как внедрять это и только взвесив все за и против наверное решил бы окончательно стоит овчинка выделки или нет. Я лучше буду биться за универсальность и максимальный функционал каждого отдельного блока, чтобы каждая деталь была как бы прототипом живого железного изделия. Ну ты видел мои полуфабрикаты.
Еще не очень приветствую что в блоке воздуховод ты мешаешь в 1 кучу кругляк и прямоуголку. Почему каждый тип воздуховода не сделать отдельным блоком? Хотя с другой стороны может оно и лучше когда в 1 блоке. Опять же надо думать и взвешивать. Я в идеале хотел бы получать спецификацию системы командой _dataextract но столкнулся с тем что она из рук вон плохо обрабатывает динблоки. Ну по крайней мере на установленном у меня 2008м автокаде это так, может быть в 2009м или 2010м что-то изменилось, надо проверять. А так, снабдив блоки достаточным количеством динамических параметров и атрибутов, можно было бы и полуавтоматическое надписывание забубенить с помощью утилиты cfox и спецификацию получить и даже частично организоватькр скрытие невидимых участков пересекающихся на разных уровнях воздуховодов снабдив блоки вайпаутами. Плохо что в сложноэлементных блоках типа отводов вайпауты безболезненно не внедришь без урезания функционала.
Так что оснащение блоков параметрами и атрибутами скорости и расхода в канале я приветствую - это можно с пользой использовать, а внедрение 1D вида только для того чтобы сделанное можно было взорвать мне пока видится сомнительным преимуществом.
Времени тоже совершенно нет на то чтобы доделать свою базу, но когда нибудь это все равно непременно случится.
Axel
Цитата(glam @ 16.2.2010, 22:41) *
А в моем понимании внедрение вида 1D а-ля магикад в систему динблоков для быстрой отрисовки вентсистем не входит.

По поводу 1D я задачу ставил немного шире чем то что уже сделал. Есть компоненты, которые на схеме выглядят иначе чем на планах. Переходы воздуховодов, разнообразные пожарные и дроссель-клапана, вентиляторы с принадлежностями, и прочая мутотень, которую после обрисовки трассы полилинией и конвертации в изометрию придется расставлять вручную. Если бы таким образом собрать все возможные компоненты и добавить им 1D вид, то это бы облегчило жизнь.

А по поводу того что не надо мешать в один блок кругляк и прямоуголку, тут ты прав, я это уже тоже осознал, хотя и ставил другие задачи нежели ты. Просто даже организовать подписывание программой c-fox в моем случае не получится, нужно будет добавлять в программу зависимость от состояния видимости. И получить что-то вроде спецификации с помощью Dataextraction намного геморнее, если не невозможно. А сама Dataextraction работает в 2009 каде точно также как и в 2008, я никакой разницы не ощутил.
shmarovoz
Огромное спасибо за выложенный материл, очень пригодилось
Барабан
Огромное спасибо!!! Очень помогло в работе)))
Composter
здравствуйте.я до этого выкладывал блоки.теперь довел свою базу до конца.сделал все типоразмеры для круглых и прямоугольных воздоховодах.отоводы сделал строго по всн.блоки стали действительно динамическими,никаких блоках в блоках и visibliti set.тип 2 сделал потому что я обычно делаю на планах однолинейку ,потом акс с расчетом, а потом уже блоки выкладываю на плане, и мне удобнее отовод вставить в пересечение прямых.если кто захочет разобраться в блоках, то в автокаде 2010 и выше не все отображается.
Composter
по просьбе коллег, дроссели и озк сделал отдельно для круглых отдельно для прямоугольных воздуховодов, и точка вставки для прямоугольных не на центре .
Composter
ну и первый лисп для облегчения работы с блоками.надеюсь как полгружать все знают.запуск лиспа происходит после ввода команды zod71 .для того что бы не вбивать значения ширины /высоты/диаметра переходников/отводов/воздуховодов.1 блок нужно указать воздуховод(у которого уже выставлены ширина /высота/диаметр ) который ближе к точке вставки переходника, второй блок с противоположной стороны и 3 блок сам переходник.если применять для отвода/воздуховода то вместо 2 блока просто ткнуть в пустое место.работает как с круглыми так и с прямоугольными переходниками и отводами.
Andy B
Спасиба, оченб полезные блоки!! Терь надо их освоить чтобы ускорить процесс черчения!!
galtjersey
Спасибо за выложенные динамические блоки, очень помогли
Rage_4er
Цитата(Composter @ 22.1.2010, 21:37) *
я вот немного изменил блоки, добавил в них еще один параметр как высота.во первых при составлении спецификации это упрощает подсчет.а во вторых я написал небольшой лисп ,который упрощает проставление размеров воздуховодов на чертежах.

Код
(defun c:zod29 ( / blk_ename bl_ename ent_d Shirina_v Visota_v minpoint maxpoint p1 p2 p3 line_p1 intpt int_p3 int_p4 Diametr_v )
(vl-load-com)
(if    (vlax-method-applicable-p (setq blk_ename(vlax-ename->vla-object(car(setq ent_d(entsel "\nУкажите блок" )))))'GetDynamicBlockProperties)
(if    (listp(setq bl_ename (vl-catch-all-apply 'vlax-safearray->list (list(vlax-variant-value(vla-GetDynamicBlockProperties blk_ename ))))))
(progn    (mapcar '(lambda (att_name)
        (cond    (    (equal (vla-get-PropertyName att_name) "Shirina")    (if
                                            (equal (type(vlax-variant-value(vla-get-Value att_name)))(type ""))
                                            (setq Shirina_v (vlax-variant-value(vla-get-Value att_name)))
                                            (setq Shirina_v (rtos(vlax-variant-value(vla-get-Value att_name))2))
                                        )
                                                                        )
            (    (equal (vla-get-PropertyName att_name) "Visota")    (if
                                            (equal (type(vlax-variant-value(vla-get-Value att_name)))(type ""))
                                            (setq Visota_v (vlax-variant-value(vla-get-Value att_name)))
                                            (setq Visota_v (rtos(vlax-variant-value(vla-get-Value att_name))2))
                                        )
                                                                        )
            (    (equal (vla-get-PropertyName att_name) "Diametr")    (if
                                            (equal (type(vlax-variant-value(vla-get-Value att_name)))(type ""))
                                            (setq Diametr_v (vlax-variant-value(vla-get-Value att_name)))
                                            (setq Diametr_v (rtos(vlax-variant-value(vla-get-Value att_name))2))
                                        )
                                                                        )
        )
        )
        bl_ename
    )
(vla-put-ScaleFactor
(setq etext
    (vla-addtext     (if    (equal 1 (vla-get-activespace(vla-get-activedocument(vlax-get-acad-object))))
                (vla-get-modelspace(vla-get-activedocument(vlax-get-acad-object)))
                (vla-get-paperspace(vla-get-activedocument(vlax-get-acad-object)))
            )

        (if    Diametr_v
            (strcat "%%C" Diametr_v )
            (strcat Shirina_v "x" Visota_v)
        )
        (vlax-3d-point(getpoint "\nУкажите точку вставки текста"))
        180
    )
)
0.8)

(vla-GetBoundingBox etext 'MinPoint 'MaxPoint)
(setq     minpoint    (vlax-safearray->list minpoint)
    maxpoint    (vlax-safearray->list maxpoint)
    maxpoint    (list(+(car maxpoint) 50)(-(cadr minpoint)20)(caddr maxpoint))
    minpoint    (list(- (car minpoint) 50)(-(cadr minpoint)20)(caddr minpoint))
    ent_d    (cadr ent_d)
)
(if     (<
        (DISTANCE minpoint ent_d)
        (DISTANCE maxpoint ent_d)
    )
    (setq p1 minpoint     p2 maxpoint)
    (setq p1 maxpoint     p2 minpoint)
)
(setq line_p1
(vla-addline
    (if    (equal 1 (vla-get-activespace(vla-get-activedocument(vlax-get-acad-object))))
        (vla-get-modelspace(vla-get-activedocument(vlax-get-acad-object)))
        (vla-get-paperspace(vla-get-activedocument(vlax-get-acad-object)))
    )
    (vlax-3d-point p1)
    (vlax-3d-point ent_d)
)
)
(setq intpt(vlax-safearray->list(vlax-variant-value(vla-IntersectWith line_p1 blk_ename 3))))
(cond    (    (equal (length intpt) 3)    (setq p3 (list(car intpt)(cadr intpt)(caddr intpt)))    )
    (    (equal (length intpt) 6)    (setq int_p3(list(nth 0 intpt)(nth 1 intpt)(nth 2 intpt))    int_p4 (list(nth 3 intpt)(nth 4 intpt)(nth 5 intpt))))
)
(if int_p3    (progn    
(if     (<
        (DISTANCE p1 int_p3)
        (DISTANCE p1 int_p4)
    )
    (setq p3 int_p3)
    (setq p3 int_p4)
)
    )    
)
(vla-put-EndPoint line_p1 (vlax-3d-point p3))
(vla-addline
    (if    (equal 1 (vla-get-activespace(vla-get-activedocument(vlax-get-acad-object))))
        (vla-get-modelspace(vla-get-activedocument(vlax-get-acad-object)))
        (vla-get-paperspace(vla-get-activedocument(vlax-get-acad-object)))
    )
    (vlax-3d-point p1)
    (vlax-3d-point p2)
)

)))
(princ)
)


Подскажите, пожалуйста, линий этой выноски как сделать тонкими по умолчанию 0,15?
ingener.1
Цитата(Axel @ 17.2.2010, 2:58) *
Всвязи с переходом на новое место работы у меня совершенно нет времени на доработку моего варианта динблоков. И в ближайшее обозримое будущее времени этого не будет. С глубокой печалью выкладываю некоторые новшества и идеи которые придумал, но в ближайшее время не воплощу. Блок решетки не доделал, т.е. доделал, но загубил.
То Glam, главным образом выкладываю для тебя. Может быть применишь что-нибудь из предложенного в своем творении. Основная идея в том чтобы быстро менять тип всей сети воздуховодов со всей фасониной и прочим прилагающимся. А также одним движением получать ту же трассу в виде 1д для дальнейшего преобразования в аксонометрию с помощью программы "инженерная сантехническая аксонометрия" и иже с ней.

Надеюсь что буду находить время на доработку своих полуфабрикатов(с), но не очень в это верю smile.gif


Очень понравились эти блоки! Благодарю! Только хочу разделить на отдельные блоки круглые и прямоугольные, и отводы пока не устраивают эстетически.
Больше никаких правок в них не было?
winch
Спасибо потрудившимся! А есть ли у кого динблоки гибких воздуховодов и жестких воздуховодов в изоляции?
Byzantian
Находил здесь на форуме динамические блоки, немного доработал... Потом перешел на MagiCAD. Если кому-то нужны, то вот:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.