Insert and Rotate Camera Example (C#)
This example shows how to insert and rotate a camera.
//------------------------------------------------------------------------
// Preconditions:
// 1. Verify that the specified model document exists.
// 2. Open the Immediate window.
//
// Postconditions:
// 1. Inserts a camera in the model, changes its type to floating,
// and rotates it (i.e., modifies its pitch and yaw).
// 2. Examine the Immediate window.
//
// NOTE: Because the model is used elsewhere, do not save changes.
//------------------------------------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Diagnostics;
namespace PitchYawCameraCSharp.csproj
{
partial
class SolidWorksMacro
{
public
void Main()
{
ModelDoc2
swModel = default(ModelDoc2);
ModelDocExtension
swModelDocExt = default(ModelDocExtension);
Camera
swCamera = default(Camera);
int
fileerror = 0;
int
filewarning = 0;
bool
boolstatus = false;
//
Open part document
swApp.OpenDoc6("C:\\Users\\Public\\Documents\\SOLIDWORKS\\SOLIDWORKS 2018\\samples\\tutorial\\api\\coffeecup.sldprt",
(int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"", ref fileerror, ref filewarning);
swModel
= (ModelDoc2)swApp.ActiveDoc;
swModelDocExt
= (ModelDocExtension)swModel.Extension;
//
Insert a camera
swCamera
= (Camera)swModelDocExt.InsertCamera();
//
Set camera type to floating
swCamera.Type = (int)swCameraType_e.swCameraType_Floating;
//
Show camera
boolstatus
= swModelDocExt.SelectByID2("Camera1",
"CAMERAS", 0, 0, 0, false, 0, null, 0);
boolstatus
= swModel.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swDisplayCameras,
true);
swModel.GraphicsRedraw2();
//
Get camera's pitch and yaw settings
// 1 radian = 180º/p
= 57.295779513º or approximately 57.3º
Debug.Print("Original
pitch (up or down angle) = " + swCamera.Pitch
* 57.3 + " deg");
Debug.Print("Original
yaw (side-to-side angle) = " + swCamera.Yaw
* 57.3 + " deg");
Debug.Print("
");
//
Rotate camera
swCamera.Pitch
= -25;
swCamera.Yaw
= 150;
//
New pitch and yaw settings
Debug.Print("New
pitch (up or down angle) = " + swCamera.Pitch
* 57.3 + " deg");
Debug.Print("New
yaw (side-to-side angle) = " + swCamera.Yaw
* 57.3 + " deg");
swModel.GraphicsRedraw2();
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}