VarianAPIs / PyESAPI

Python interface to Eclipse Scripting API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SetTargetStructureIfNoDose

mfizyczka opened this issue · comments

Hi,

I'd like to set target structure with pyesapi.

For c# this works:

Structure targetStructure = originalPlan.StructureSet.Structures.Where(s => s.Id.Equals(originalPlan.TargetVolumeID)).Single();
StringBuilder ErrorHint = new StringBuilder("Error while setting Target Structure");
newPlan.SetTargetStructureIfNoDose(targetStructure, ErrorHint);

But I cannot make it work with pyesapi.

targetStructure = originalPlan.StructureSet.StructuresLot(originalPlan.TargetVolumeID)
ErrorHint = "Error while setting Target Structure"
newPlan.SetTargetStructureIfNoDose(targetStructure)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: No method matches given arguments for SetTargetStructureIfNoDose: (<class 'VMS.TPS.Common.Model.API.Structure'>)

Simmilar effect for:

newPlan.SetTargetStructureIfNoDose(targetStructure, ErrorHint)

TypeError: No method matches given arguments for SetTargetStructureIfNoDose: (<class 'VMS.TPS.Common.Model.API.Structure'>, <class 'str'>)

How can I set target structure with pyesapi?

You're right. With this changes it works:

import clr # load Python.NET
# the CLR namespaces are now recognized as Python packages
import System
import System.Text

targetStructure = originalPlan.StructureSet.StructuresLot(originalPlan.TargetVolumeID)
ErrorHint = System.Text.StringBuilder("ThisStringIsOptional")  
newPlan.SetTargetStructureIfNoDose(targetStructure, ErrorHint)

Thanks for help and good hint :-)