using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Demo
{
public partial class Form1 : Form
{
public SldWorks swApp;
public ModelDoc2 swModel;
public DrawingDoc swDraw;
public Mouse theMouse;
public ModelView modelView;
public Form1(ISldWorks swApp)
{
InitializeComponent();
this.swApp = swApp as SldWorks;
var activeDoc = swApp.ActiveDoc;
swModel = activeDoc as ModelDoc2;
swDraw = swModel as DrawingDoc;
modelView = swModel.IGetFirstModelView();
theMouse = modelView.GetMouse();
}
private void button1_Click(object sender, EventArgs e)
{
theMouse.MouseLBtnDownNotify += ms_MouseLBtnDownNotify;
}
public int ms_MouseLBtnDownNotify(int ix, int iy, int warm)
{
//ix,iy是window space下的坐标 下面转换为world space下坐标
var mt = modelView.Transform.IInverse();
double[] coor = new double[3] { ix, iy, 0 };
var mp = swApp.IGetMathUtility().CreatePoint(coor) as MathPoint;
mp = mp.IMultiplyTransform(mt);
double[] newCoor = mp.ArrayData;
swApp.SendMsgToUser("x:" + newCoor[0] + " y:" + newCoor[1]);
return 1;
}
private void button2_Click(object sender, EventArgs e)
{
theMouse.MouseLBtnDownNotify -= ms_MouseLBtnDownNotify;
}
}
}