ScriptSpot

Script

UniAttach-Detacher

By Nik · Credited author: Nikolay Litvinov · 2013-06-27

Version
3.07
Date updated
2023-11-08
Votes
23
Description

v3.07 Added fix for detached detach geometry if the source object had incorrect mesh issues.
Добавлено исправление отсоединённой detach-геометрии, если в исходном объекте были проблемы некорректной сетки.

Using single hotkey for Attach/Detach
Используя единственную горячую кнопку для Attach/Detach

Additional Info

v3.06 Fixed multiattach from splines (the first spline is joined to the others with the modifier of the first object preserved) Исправлен мультиаттач сплайнов (к первому сплайну присоединяются остальные с сохранением модификатора первого объекта) v3.05 Fixed attachment with material reproduction, material applies to the first selected object Исправлен аттач с размножением материалов, материал применяется первого выделенного объекта v3.04 Fixed detach in Edit_Poly modifier Исправлен детач в модификаторе Edip_Poly v3.03 Acknowledgements to antomor http://www.scriptspot.com/3ds-max/scripts/quick-attach Used his algorithm of attach v3.02 Redesigned, improved operation for attach objects v3.01 (1) Fixed: bug of MultiAttach (but used not Attach List, for a huge number of objects can be slower but more stable.) Исправлено: ошибка с аттачем (но использован не аттач лись, для огромного количества объектов может быть медленнее, но стабильнее.) v.3.0 Исправил детач от элементов от примитивов и мульти-аттач мешей Fixed detach from elements from primitives and multi-attach meshes v.2.99 Fixed bug of weld knots in spline by threshold 0.002 or attach spline Исправлена ошибка спаивания узлов сплайна по порогу 0.002 или аттач сплайнов v.2.98 Fixed bug in multiattach Groups of objects Исправлена ошибка в мультиаттаче групп объектов v.2.97 Fixed bug in multiattach Add Create line-shape from 2 selected vertex by Esc pressed + detach key Add Weld knots of splineshape with threshold 0.002 Fast multiattach: improved algorithm multiattach v.2.81 After detach Selected current object Fixed bug of multiattach objects v.2.77 To Detach with Dialog run script by press (Esc+Key of script) Для детача с диалогом запустить скрипт по нажатию Esc+кнопка скрипта v.2.76 Attach many objects by material of first selected objects with pressed Esc+Key of sctipt Присоединение множества объектов по материалу первого выделенного объекта с нажатием Esc+кнопка скрипта. v2.75 1. If Subobjectlevel is Vertex or Edges or Border or Face or Element and was selected subobjects then will run Weld Verts function 2. Detach without dialog. Detach без диалога v2.74 Fixed: bug of MultiAttach Исправлено: ошибка с аттачем v2.73 Fixed: bug of explode elements by objects Исправлено: ошибка с разделением элементов на объекты v2.72 Added: reworks attach of splines function Добавлено: изменил функцию аттача сплайнов v2.71 Added: fix attach of geometry function Добавлено: изменил функцию аттача геометрии v2.7 Added: if all elements-splines (in subobjectlevet==3) then Explode by splines as separate objects Добавлено: если выбраны все элементы-сплайны (в подобъекте 3) тогда будет разбиение на сплайны как отдельные объекты v2.6 Fixed Bug of Attach Improved Attachment algorithm for a large set of objects Added a geometry filter in attach to avoid errors Исправлена ошибка аттача Улучшен алгоритм аттача для большого множества объектов Добавлен фильтр геометрии в аттаче для избежания ошибки v2.57 Fixed bug of switcher select to last detached object and reset material Исправлена ошибка переключателя к последнему отделённому объекту и сброс материала v2.54 Added reset material on button ResetMtl. Добавлен сброс материала на кнопке ResetMtl. v2.52 Now single element as object not explode to one object - will occured detach as... Теперь единственный элемент как объект не взрывается на один объект - произойдёт детач как... v2.51 Multiple Autoattach Shapes. Fixed bugs v2.4.4 Detach as clone with hide base object (If subobjectlevel is undefined or equal 0) v2.4.3 Added Create shape from border v2.4 Attach objects to last selected object Install:Drop *.mzp to viewport. Перетащить *.mzp во въюпорт.
Attachments

Tags: script, modeling, spline, Poly, selection, tool, workflow, select, object, maxscript, attach, detach, mesh

Comments (64)

сохранение имени объекта при детаче

harumscarum · 2024-07-10

еще раз огромное спасибо за скрипты, в особенности что сохраняется имя изначальное объекта при детаче в новый
а можно ли добавить поддержку сохранения имени при детаче сразу нескольких объектов (назначенном edit poly или edit mesh)

спасибо!

Здравствуйте. Благодарю за высокую оценку моих скриптов.

Nik · 2024-05-12

По поводу UniAttach UniDetach
Ну, чтоб не было путаницы, уточню: UniAttach и UniDetach по сути 2 разных скрипта, назначаемых на разные хоткеи.
По поводу разных типов аттача: в разных версиях UniAttach применяются разные функции аттача, потому что пробовал то QuickAttach функцию применять, то либо применял Multiattach (это с ним выпадает окошко с выбора объектов), которое в норме должно само закрываться по кнопке Ok.
Да, возможно не всё гладко в моих скриптах, потому что всплывает много нюансов, связанных с проработкой разных ситуаций срабатывания скриптов.

Thank you

Alexandr Glazachev · 2024-05-16

Наше пионерское спасибо за разъеснения танкистам!! ))

Здравствуйте. Благодарю за высокую оценку моих скриптов.

Nik · 2024-05-12

По поводу UniAttach UniDetach
Ну, чтоб не было путаницы, уточню: UniAttach и UniDetach по сути 2 разных скрипта, назначаемых на разные хоткеи.
По поводу разных типов аттача: в разных версиях UniAttach применяются разные функции аттача, потому что пробовал то QuickAttach функцию применять, то либо применял Multiattach (это с ним выпадает окошко с выбора объектов), которое в норме должно само закрываться по кнопке Ok.
Да, возможно не всё гладко в моих скриптах, потому что всплывает много нюансов, связанных с проработкой разных ситуаций срабатывания скриптов.

Alexandr Glazachev · 2024-05-07

Николай у вас потенциально замечательные скрипты, юниконектор так вообще...!!! Супер, в своё время очень впечатлил. Но постоянно какие то ребусы, или не знаю может я очень тупой.

И здесь так-же. Как он работает от одной клавиши? Когда в Hotkey Editor две команды UniAttach и UniDetach? Или я чего-то не понимаю, но назначить их на одну клавишу не представляется возможным? И что такое UniDetach_Sel_LastObj?

Сразу после установки, у меня работало объединение всех выбраных объктов по клавише скрипта, потом после перезагрузки макса, стал выпадать список для выделения и подтверждения команды Attach. А attach без диалога срабатывает на конпку скрипта + ESC. если я правильно все понимал должно вроде быть наоборт.

Буду признателен если вы прокоментируете это. Спасибо.

Nikolay, you have potentially wonderful scripts, a uniconnector in general...!!! Super, I was very impressed at the time. But there are always some puzzles, or I don’t know, maybe I’m very stupid.

And it’s the same here. How does it work from one key? When does Hotkey Editor have two commands UniAttach and UniDetach? Or am I missing something, but it’s not possible to assign them to one key? And what is UniDetach_Sel_LastObj?

Immediately after installation, merging all selected objects using the script key worked for me, then after rebooting Max, a list began to appear for selecting and confirming the Attach command. And attach without a dialog is triggered by the script button + ESC. If I understood everything correctly, it should seem to be the other way around.

I would be grateful if you would comment on this. Thank you.

Alexandr Glazachev · 2024-05-07

Николай у вас потенциально замечательные скрипты, юниконектор так вообще...!!! Супер, в своё время очень впечатлил. Но постоянно какие то ребусы, или не знаю может я очень тупой.

И здесь так-же. Как он работает от одной клавиши? Когда в Hotkey Editor две команды UniAttach и UniDetach? Или я чего-то не понимаю, но назначить их на одну клавишу не представляется возможным? И что такое UniDetach_Sel_LastObj?

Сразу после установки, у меня работало объединение всех выбраных объктов по клавише скрипта, потом после перезагрузки макса, стал выпадать список для выделения и подтверждения команды Attach. А attach без диалога срабатывает на конпку скрипта + ESC. если я правильно все понимал должно вроде быть наоборт.

Буду признателен если вы прокоментируете это. Спасибо.

Nikolay, you have potentially wonderful scripts, a uniconnector in general...!!! Super, I was very impressed at the time. But there are always some puzzles, or I don’t know, maybe I’m very stupid.

And it’s the same here. How does it work from one key? When does Hotkey Editor have two commands UniAttach and UniDetach? Or am I missing something, but it’s not possible to assign them to one key? And what is UniDetach_Sel_LastObj?

Immediately after installation, merging all selected objects using the script key worked for me, then after rebooting Max, a list began to appear for selecting and confirming the Attach command. And attach without a dialog is triggered by the script button + ESC. If I understood everything correctly, it should seem to be the other way around.

I would be grateful if you would comment on this. Thank you.

harumscarum · 2022-08-19

спасибо за апдейт, но к сожалению возникает прежняя ошибка при попытке детача с назначенными Edit Mesh и Edit Poly модификаторами

Edit_Poly исправил, Edit_Mesh - сложно, не стал делать.

Nik · 2022-08-19

.

error while using Edit Mesh and Edit Poly modifiers

harumscarum · 2022-08-15

Not working if multiple objects selected with the Edit Mesh or Edit Poly assigned
Please find screenshots attached

Attachments

Not work with max 2018

Marsman · 2019-10-16

Hello,
It works neither Attach nor Dettach.Can you check this? Thanks for great script!

try v3.01(1)

Nik · 2019-10-16

thank you for your appreciation

Аттачинг с subbjectlevel 1-5 editablePoly

Maketer · 2019-07-02

Привет, а когда будет возможность аттачинга с subbjectlevel 1-5 в editablePoly?

Подробнее расскажи, что значит аттачинг с subbjectlevel 1-5?

Nik · 2019-07-04

Tell us more about what it means to Attach with subbjectlevel 1-5?

subbjectlevel 1-5

Maketer · 2019-07-05

ну с режима подобъектов, например, вершин/полигонов тоже ведь можно в максе аттачить, а у тебя скрипт не работает с этих режимов

.

Nik · 2019-07-07

С версии 2.75 в режиме подобъектов происходит сваривание разрывов по вершинам.

С версии 2.75 в режиме подобъектов происходит сваривание разрыво

Maketer · 2019-07-11

Как-то неудобно, если скрипт аттачингом в основном занимается, то почему он велдит вершины? Хочется аттачить с любого режима, не задумываясь, в каком режиме сейчас находишься. Для велда должен быть отдельный скрипт, по моему мнению

.

Nik · 2019-07-12

Я так сделал потому что при детаче вершин и рёбер этим скриптом происходит breack вершин, вот и сделал weld при аттаче в подобъектах.

Вот держи, специально для тебя перекрыл несколько строк кода, чтобы работал attach а не weld в подобъектах

Attachments

uad_v3.0_attachso.ms

Maketer · 2019-07-13

Благодарю, Ник, спасибо, то, что нужно!

.

Nik · 2019-06-25

Спасибо, вроде исправил.
Thanks, it seems to have corrected.

uad_v2.99.ms

ibm · 2019-06-25

Если снизу лежит не editable poly, а к примеру ,box или модификатор - при попытке сделать детач элемента (не путать с полигоном) появляется ошибка. прикрепил скрин.
Так же не получается саттачить много меш объектов, появляется окно attach list - но ничего не происходит. сплайн аттачит без проблем.

Спасибо

Attachments

harumscarum · 2019-04-09

уже несколько версий подряд ошибка аттача при работе с Line или EditableSpline, в то время как с использование EditSpline модификатора аттачит без проблем

Attachments

Исправил. Fixed.

Nik · 2019-04-15

Я пользуюсь выделением сразу кучи сплайнов и нажимаю этот скрипт, поэтому не увидел ошибок.
Исправил проблему. Благодарю за помощь в поиске ошибок.
Теперь вроде норм работает аттач, а если выбраны кноты (узлы сплайна), то скрипт пытается спаять все разорванные с допуском 0,002

I use the allocation immediately heap splines and click this script, so I saw no errors.
Fixed the problem. Thank you for your help in finding bugs.
Now it seems correctly work a attach, and if the selected nodes of the spline, the script tries to solder all broken with a tolerance of 0.002

spline attach bug

harumscarum · 2019-04-02

error on Editable Spline attach (Edit Spline modifier works fine)
max2014*sp5 and max2020

Attachments

keep name of the detached elements

harumscarum · 2019-03-13

можно ли сделать так чтобы новый объект образованный при детаче сохранял имя исходного?

.

miauu · 2019-03-13

Open the script and replace line 143 with this:


polyop.detachFaces obj ele asNode:true name:obj.name

and line 154 with this:


polyOp.detachFaces $ El asNode:true name: ($.name)

thank you!

harumscarum · 2019-03-14

thank you, this solution worked for the Edit/Editable Poly
would it be possible to have the same for Edit/Editable Spline?

.

Nik · 2019-04-15

Done, thanks

.

Nik · 2018-09-02

Хорошо, посмотрю, доработаю.

harumscarum · 2018-08-31

спасибо! заработало

обнаружилась еще пару проблем

1 - не срабатывает аттач в EditablePoly если сверху есть какой нибудь модификатор (например Material)
2 - при детаче в новый обьект он помещается в активный слой, хотя логичнее чтобы он оставался в том слое в котором находится исходный обьект

спасибо

спасибо

harumscarum · 2018-08-13

к сожалению 2.76.1 и 2.76.2 так же срабатывают без диалога
последняя версия с диалогом 2.74

,

Nik · 2018-08-14

Скачай последнюю версию скрипта и поставь в функции Udetach_fn not вот здесь.
Извиняюсь, что сразу не догадался так сделать.

Attachments

детач с диалогом

harumscarum · 2018-08-12

подскажите пожалуйста как отредактировать последнюю версию скрипта чтобы детач с диалогом осуществлялся и без зажатого ESC (он у меня уже на другой скрипт назначен через AHK)

.

Nik · 2018-08-13

Вот версия такая с детачем через диалог 2.76.1

B я здесь обновил функцию мултиаттача из последней версии.

element detach (edit poly) bug

harumscarum · 2018-03-30

there is the bug to detach Element of the ProCutter object with Edit Poly assigned

screenshot is attached

Attachments

dispatch

Den_sis · 2017-10-22

hot to delete these scripts? как удалить эти скрипты, они сломали нах весь макс, у меня теперь все аттачится под один материал.

.

Nik · 2017-10-23

Den_sis, Здесь C:\Users\user02\AppData\Local\Autodesk\3dsMax\2018 - 64bit\ENU\usermacros
удалить Niklit Scripts-UniAttach.mcr

Thanks!

harumscarum · 2017-10-21

Unfortunately, Attach multiple not working on objects with MultiMat assigned
new object keeps only first two IDs

К сожалению осталась проблема аттача нескольких объектов с уже назначенными materialID и мультиматом в один объект который получается только с двумя первыми ID исходного мультимата

.

Nik · 2017-10-23

harumscarum, У меня не было такой проблемы. Но я заметил что undo не работало после аттача. Сейчас изменил функцию аттача. Возможно и твоя проблема с мультиматериалами исправилась.

I did not have such a problem. But I noticed that the undo did not work after the attach. Now I changed the Attachment function. Perhaps your problem with multimaterials has been corrected.

harumscarum · 2017-07-19

большое спасиб!о
обнаружился баг при аттаче нескольких объектов в один - получается объект только с двумя ID и мультиматом при том что у исходных объектов ID было больше

Sel_LastObj On by default?

fedemas1969 · 2017-01-29

hello and thanks for the script,
how i can make Sel_LastObj On by default?
thanks again

.

Nik · 2017-07-10

To do this, there is a special button, which you must put in the toolbar

asymptote · 2016-03-18

I agree, Autodesk have one arsehole and many heads, it must get cramped in there. :)

`

pixamoon · 2016-03-18

Thanks for removing long gifs. +1 to all :)
But definitely leave some small front image.

Thanks for your scripts man!

hehehe

asymptote · 2016-03-18

Your scripts change the way I work, your gifs give me migraines :p

Seriously tho' outstanding scripting, lousy delivery, and your not the only one guilty of that around here ;)

Thanks for the appreciation

Nik · 2016-03-18

The ideas of my scripts are created directly in the work. In the process of simulation. Strange that Autodesk similar functions in one instrument is not shove.

All your script are great ,

asymptote · 2016-03-18

All your scripts are great , but for gods sake make a showcase video , your gifs are bloody horrendous :)

ok

Nik · 2016-03-18

.

.

Nik · 2016-03-18

I will no more insert long foot-cloth spread on the title place Site

harumscarum · 2015-07-03

к сожалению не могу решить две проблемы при детаче полигона/элемента в editable poly:

1. детач в отдельный объект приводит к тому что выделенным оказывается отдетаченный объект. постоянно приходится использовать стандартную кнопку макса. (

2. при детаче as element выделенным оказывается совершенно другой объект в сцене.

Исправил. Добавил скрипт-кнопку свитчер.

Nik · 2015-07-03

Если кнопка не нажата - то детачится дефолтово, если включена - детачит с переходом к детачному объекту.

harumscarum · 2014-02-28

снова я с вопросом)
при детаче полигона в editable poly все ок, но с него снимается выделение, пытался дописывать subobjectLevel = 4 после detPoly() но видимо как-то хитрее надо. буду очень благодарен если подскажете

Исправил. (Fixed)

Nik · 2014-03-01

Дело в том, что этот скрипт изначально я делал только для моих нужд и на тот момент, когда я его делал, похоже мне был удобен выход из подобъекта 5.
Надо было просто вообще удалить строчку "subobjectLevel="

The fact that this script originally I did just for my needs and at that time, when I did, it seems to me to be comfortable out of the subobject 5.
One just had to completely remove the line "subobjectLevel ="

fantastic!

harumscarum · 2014-02-21

now everything works fine, thank you! except strange Segment detach if more than one object with Edit Spline modifier selected - http://joxi.ru/RxMHUxjKTJAeR2Q-toM, but it is not really matter

thank you very much for this essential tool!

Nik · 2014-02-21

Thank you.
Yeah, really strange works at several sites with the modifier Edit_Spline, simply delete a segment occurs. But here I do not know how to fix it, because it uses only one method to detach spline splineOps.detach

Спасибо.
Да, действительно странно работает на нескольких объектах с модификатором Edit_Spline, происходит просто удаление сегмента. Но здесь я уже не знаю как это исправить, потому что используется всего лишь один метод для дэтач сплайна splineOps.detach

yes, edit poly or edit spline

harumscarum · 2014-02-20

yes, multiple selected objects with common edit poly or edit spline modifier, if possible.

All is ready!

Nik · 2014-02-20

--Enjoy

просто невероятно!

harumscarum · 2014-02-20

видимо это будет самый востребованный скрипт у меня. спасибо
если можно добавить поддержку сразу нескольких объектов, как в weld borders, то можно навсегда забыть про максовские шорткаты ))

спасибо еще раз

Thanks!

Nik · 2014-02-20

What do you mean, about support for multiple objects?
Under the control of the modifier [Edit_Poly]?

Спасибо!
Что вы имеете ввиду, про поддержку нескольких объектов?
Под управлением модификатора [Edit_Poly]?

thank you very much!

harumscarum · 2014-02-19

огромное спасибо!)

На здоровье.

Nik · 2014-02-19

Мне и самому понравилось такое дополнение.

thanks!

harumscarum · 2014-02-18

great script! and works perfectly.

а можно ли в ваш скрипт добавить возможность чтобы детач сплайнов происходит без окошка с выбором имени нового объекта?  есть такой код но он не со всеми сплайн объектами работает

     splineOps.Detach $
            UIAccessor.PressDefaultButton()
        ) catch()
    
        try
        (
            edit_spline_modifer = $.modifiers[#Edit_Spline]
            splineOps.detach edit_spline_modifer
            UIAccessor.PressDefaultButton()
        ) catch()

 

еще порой не хватает отдельного скрипта для детача копии - если можно сделать отдельный макрос для этого - буду очень благодарен

 

спасибо!

Thanx

Nik · 2014-02-19

I did this rectification
Сделал эти исправления

Thanx

Nik · 2013-06-27

Enjoy :)

atanasbak · 2013-06-27

Nice script.
if you swap these two lines:

local curObj = modPanel.getCurrentObject()
if getCommandPanelTaskMode() != #modify then\
setCommandPanelTaskMode mode:#modify

You will not have to run the macroScript twice if you are in create panel to work.
Thanks for sharing!