dotNet + MXS


#601

Aaahh, yes … accelerators… I knew I saw this issue already… I just could name it… Thanks a lot, Denis!


#602

If I would like to force MAX to load/substitute another version of devexpress libraries, what would be the necessary steps to achieve that? Any idea, please?


#603

if they are .DLL files, you can use mxs

dotnet.loadassembly @"c:\path	o\my.dll"

#604

Thanks mate, but imho it won’t be so easy this time. I have suspicion that some wrapper must be involved in this case. I’m looking more less for substitution of current library with new one from newer version of MAX to achieve compatibility of the tool.


#605

Hi,

I’ve recently started dabbling in writing some functions in dotnet using Autodesk.max.dll in 2015.

My functions work fine, but I’m puzzled on how to supply the node to the fucntion from maxscript.

I’ve worked around it by being able to pass the node handle into the dotnet function, then using GetINodeByHandle to get hold of it.

I’d rather just be bale to pass the node itself, rather than its handle.
Does anyone know how to do this please?

Thanks


#606

Hi there,

I’m trying to write a script that associates data polled from a Socrata open-data platform to geometry in my model.

I’m using this C# library: https://github.com/CityofSantaMonica/SODA.NET

With this dataset: https://dev.socrata.com/foundry/data.sfgov.org/qwfj-9mts

I have successfully loaded the library in maxscript and set up a client object. But when I call the client.getResource method I get this error: "Runtime error: dotNet runtime exception: Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true.”

I gathered that getResource returns a generic type, but I can’t figure out how to cast that type into something maxscript understands.

Does anyone know how work with generic types or how to cast a variable type in maxscript?

Thanks!


#607

دکوراسیون داخلی
thank you.


#608

edit: wrong post.


#609

Just don’t try to program c# using max script. you have very limited capabilities there. It is best to simply write a plugin to do what you need and then expose some functionality back to max script.


#610

I have same problem , now i use vs to create an user control contains a devexpress treelist control, complie it to a dll file , use mxs to call it ,it work fine, maybe you can try this.


#612

This thread has been invaluable for me to learn. But I’m having trouble with checkboxes and selecting them in the UI and checking and unchecking them.

This is a snippet of code below I want to control the checkboxes by multiple selections and hitting the checkbox (whether checked or not) to select / de-select them accordingly, trouble is when I do this it doesn’t do them in one go but for each item. And you can visually see the text count up or down of the countLabelVal text.

What would the best way of displaying the checked count of the listview while overcoming the problem above?

try(destroydialog ::lvRolTest)catch()
rollout lvRolTest "Check Mate.."
(

  local lvSetItemsProp
  local resizeListView

  label         countLabelPrefix  "How many you say ?" across:3
  label         countLabelVal     ""
  checkButton   chkLvButton       "Un/check All..."
  dotNetControl lv                "ListView" width:250 height:545 pos:[10,30]

  on lvRolTest open do
  (
    lv.View             = (dotNetClass "View").Details
    lv.FullRowSelect    = true
    lv.GridLines        = true
    lv.MultiSelect      = true
    lv.Checkboxes       = true
    lv.Columns.add      ("Items")

    resizeListView()

    for x=1 to 100 do
    (
      lv.BeginUpdate()
      local newLvItem = dotNetObject "ListViewItem" ("Item " + x as string)
      newLvItem.checked = true
      lv.EndUpdate()
      lv.items.add newLvItem
      )
    lv.Focus()
    countLabelVal.text = (lv.CheckedItems.count) as string
    )

  on lvRolTest resized val do (
    resizeListView()
    )

  on chkLvButton changed state do (
   if state do chkLvButton.text         = "Check All..."
   lvSetItemsProp rolArg:(#lvRolTest as string) lsArg:(#lv as string) prop:#Checked state:((not state) as string)
   if not state do chkLvButton.text     = "Uncheck All..."
   countLabelVal.text = (lv.CheckedItems.count) as string
   lv.Focus()
   )

  on lv ItemChecked do
  (
    if lv.CanSelect and lv.CanFocus and lv.Focused then
    (
      lv.BeginUpdate()
      countLabelVal.text = (lv.CheckedItems.count) as string
      lv.EndUpdate()
      )
    )

  fn resizeListView = (
    lv.width                 = lvRolTest.width-20
    lv.height                = lvRolTest.height-40
    lv.columns.item[0].width = lvRolTest.width-40.5
    )

  fn lvSetItemsProp rolArg:#rolArg lsArg:#lsArg prop:#checked state:#false = (
    execute("for i = 0 to "+rolArg+"."+lsArg+".items.count-1 do "+rolArg+"."+lsArg+".items.item[i]."+prop+"="+state)
    )

  )
createDialog lvRolTest 270 575 style:#(#style_SysMenu, #style_ToolWindow, #style_resizing)