By Ramesh Doni on Tuesday, 10 November 2020
Posted in C# Development
Likes 0
Views 737
Votes 0
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;
}
View Full Post