|
@@ -9,6 +9,7 @@ import com.fdkankan.dxf.generate.DxfDocWriter;
|
|
|
import com.fdkankan.dxf.generate.Vector3;
|
|
|
import com.fdkankan.dxf.generate.enums.LineWidthEnum;
|
|
|
import com.fdkankan.dxf.generate.model.DxfArc;
|
|
|
+import com.fdkankan.dxf.generate.model.DxfLine;
|
|
|
import com.fdkankan.dxf.generate.model.DxfPoint;
|
|
|
import com.fdkankan.dxf.generate.model.DxfText;
|
|
|
import com.fdkankan.dxf.generate.model.base.Color;
|
|
@@ -74,7 +75,7 @@ public class LaserMeterToDxfUtil {
|
|
|
Vector3 endPoint = new Vector3((point2.getDouble("x") ) * 100 ,(point2.getDouble("y")) * 100,0);
|
|
|
pointSet.add(startPoint);
|
|
|
pointSet.add(endPoint);
|
|
|
- FdJsonToDxfUtil.drawLinePoint(startPoint,endPoint,dxfDocWriter);
|
|
|
+ drawLinePoint(startPoint,endPoint,dxfDocWriter);
|
|
|
BigDecimal bigDecimal = BigDecimal.valueOf(distanceTo(point3d1, point3d2) * 100).setScale(5, RoundingMode.UP);
|
|
|
int d = bigDecimal.divide(new BigDecimal(100),2, RoundingMode.UP).intValue();
|
|
|
DxfText dxfText = new DxfText();
|
|
@@ -85,6 +86,7 @@ public class LaserMeterToDxfUtil {
|
|
|
dxfText.setText(bigDecimal.toString()+"cm");
|
|
|
dxfText.setAngle(angleBetween(startPoint,endPoint));
|
|
|
dxfText.setHigh(d *2);
|
|
|
+ dxfText.setColor(new Color(255,255,255));
|
|
|
dxfDocWriter.addEntity(dxfText);
|
|
|
|
|
|
}
|
|
@@ -96,14 +98,22 @@ public class LaserMeterToDxfUtil {
|
|
|
dxfArc.setStartAngle(0);
|
|
|
dxfArc.setEndAngle(360);
|
|
|
dxfArc.setSolid(true);
|
|
|
- dxfArc.setSolidColor(new Color(0, 255, 0));
|
|
|
- dxfArc.setColor(new Color(0, 255, 0));
|
|
|
+ dxfArc.setSolidColor(new Color(255,255,255));
|
|
|
+ dxfArc.setColor(new Color(255,255,255));
|
|
|
dxfDocWriter.addEntity(dxfArc);
|
|
|
}
|
|
|
dxfDocWriter.save(outPath, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
+ public static void drawLinePoint(Vector3 point,Vector3 point2,DxfDocWriter dxfDocWriter){
|
|
|
+ DxfLine dxfLine = new DxfLine();
|
|
|
+ dxfLine.setStartPoint(new Vector3(point.getX(), point.getY(), 0));
|
|
|
+ dxfLine.setEndPoint(new Vector3(point2.getX(), point2.getY(), 0));
|
|
|
+ dxfLine.setColor(new Color(255,255,255));
|
|
|
+ dxfDocWriter.addEntity(dxfLine);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// 计算两点之间的角度(相对于水平轴,单位为弧度)
|
|
|
public static double angleBetween(Vector3 point, Vector3 point2) {
|
|
@@ -128,7 +138,7 @@ public class LaserMeterToDxfUtil {
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args) throws Exception{
|
|
|
- String inPath ="D:\\cad\\work\\111\\2.json";
|
|
|
+ String inPath ="D:\\cad\\work\\111\\3.json";
|
|
|
String outPath ="D:\\cad\\work\\111\\"+new Date().getTime()+".dxf";
|
|
|
LaserMeterToDxfUtil.toDxf(new File(inPath),outPath);
|
|
|
}
|