EBDN - Community - Question & Answers

  Tuesday, 10 November 2020
  2 Replies
  713 Visits
0
Votes
Undo
Hello Team,

After placing symbol in the sheet symbol need to be rotate by some angle below code I'm using it but rotate symbol not working .please help on the same

public static string DropSymbol(this Sheet sheet, MasterShape shape, SheetPosition position, ObjectItem root, Double angle = 0, ShapeDropCopyMode copymode = ShapeDropCopyMode.CopyComplete)
{
if (shape == null)
throw new ArgumentNullException("shape";);

bool isCircuitComponent = shape.IsCircuitComponent();

IList<ExecuteSheetOperationRecordData> op = new List<ExecuteSheetOperationRecordData>();
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.OpExecSheetDropSymbol, Value = 0 });
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetRef2Master, Value = shape.MasterUniRef() });
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetPosX, Value = position.X });
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetPosY, Value = position.Y });
if (root != null)
{
if (isCircuitComponent)
{
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetRef2Dest, Value = root.Id });
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetCopyMode, Value = 8 });
}
else
{
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetRef2Obj, Value = root.Id });
op.Add(new ExecuteSheetOperationRecordData()
{ Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetCopyMode, Value = (int)copymode });
}


}
op.Add(new ExecuteSheetOperationRecordData() { Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetRetVal, Value = "" });

bool CloseSheet = !sheet.IsOpened;
if (CloseSheet)
{
sheet.Open(SheetOpenBehavior.AutoSave);
}
if (sheet.IsReadOnly)
throw new ArgumentException("Sheet " + sheet.FullName + " is Read-only";);

sheet.ExecuteSheetOperation(ref op);

ExecuteSheetOperationRecordData retval = op.LastOrDefault();
//rotate
if (angle != 0)
{
double ang = -90;
IList<ExecuteSheetOperationRecordData> op1 = new List<ExecuteSheetOperationRecordData>();
op1.Add(new ExecuteSheetOperationRecordData() { Qualifier = (int)ExecuteSheetOperationModes.OpExecSheetTransfRotateBy, Value = 0 });
op1.Add(new ExecuteSheetOperationRecordData() { Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetRef2Symbol, Value = root.Id });
op1.Add(new ExecuteSheetOperationRecordData() { Qualifier = (int)ExecuteSheetOperationModes.ArgExecSheetAngle, Value = 0 });
sheet.ExecuteSheetOperation(ref op1);
}
if (CloseSheet)
sheet.Close();

if (retval.Qualifier == (int)ExecuteSheetOperationModes.ArgExecSheetRetVal && retval.Value is string)
{
return (string)retval.Value;
}
return null;
}