Modificar blocos de parâmetros

É possível editar uma ferramenta MCG interface do usuário personalizada para estender o bloco de parâmetro que é gerado automaticamente, bem como substituir os manipuladores de eventos do parâmetro ou criar blocos de parâmetros adicionais.

Por exemplo, você pode adicionar um parâmetro que não esteja presente no gráfico, mas que seja utilizado em outra parte de seu código personalizado do MAXScript. Você também pode substituir os manipuladores de eventos de parâmetros, como para listar parâmetros no gráfico.

Para fazer isso, reabra o bloco do parâmetro para fazer as modificações necessárias. Observe que isso não substitui o bloco anterior completamente. Em particular, a redefinição de um parâmetro existente causará um erro.

Por exemplo, este é o bloco de parâmetro gerado automaticamente para um gráfico com um único parâmetro de lista:

	parameters pblock rollout:params
	(
		MyList_Tab type:#floatTab tabSizeVariable:true
		on MyList_Tab tabChanged action index count do
		(
			if (paramsOpen) do mcgAPOps.FloatA_TabChanged action index count (this.params.MyList_UI) MyList_List MyList_Tab
		)
		on MyList_Tab set val index do
		(
			if (paramsOpen) do mcgAPOps.FloatA_TabSet val index (this.params.MyList_UI) MyList_List
		)
		_dummy type:#boolean -- this exists to enable easy invalidation of the object
		pluginGraph type:#filename assettype:#MaxCreationGraph readOnly:true enumAsAsset:true 
		pluginGraphDependencies type:#filenametab assettype:#MaxCreationGraph readOnly:true enumAsAsset:true tabSize:0 tabSizeVariable:true
	)

É possível adicionar um parâmetro e substituir os eventos do parâmetro editando a interface do usuário personalizada da propriedade como segue:

 -- Reopen the parameter block
 parameters pblock rollout:params
 (

  -- Add to the parameter block
	 MyExtraParam default:0 type:#float

	 -- Override the event handler for adding or removing an item in MyList
  on MyList_Tab tabChanged action index count do
  (
 	 -- my custom code goes here
  )

	 -- Override the event handler for setting a value in MyList
  on MyList_Tab set val index do
  (
 	 -- my custom code goes here
	 )
 )

	rollout params "Parameters"
	(
  
  -- Restore the default rollout contents   
<<ParamUIDefs>>
<<RolloutParamsHanders>>

  -- Add UI for added parameter if desired
  spinner MyExtraParam "My Pretty Name" range:[-100, 100, 0] type:#float


  -- Redefine the rollout event handlers (not included in ParamUIDefs)
		on params open do
		(
			paramsOpen = true			mcgAPOps.OneColParamsOpen MyList_UI MyList_Tab mcgAPOps.ToStringFunc #("MyList") selected:&MyList_selection
		)
		on params close do
		(
			mcgAPOps.OneColParamsClose MyList_UI selected:&MyList_selection			paramsOpen = false
		)
	)

Se você definir blocos de parâmetro adicionais, lembre-se de que nos plug-ins de script, cada bloco de parâmetro pode ser associado a somente uma implementação e dois ou mais blocos de parâmetros não podem ser associados ao mesmo bloco de parâmetro.