Files
ShrlAlgoToolkit/ConsoleApp/Program.cs

171 lines
5.4 KiB
C#
Raw Normal View History

2024-09-22 11:05:41 +08:00
using System;
using System.Collections.Generic;
2024-10-08 16:21:39 +08:00
using System.Diagnostics;
using System.IO;
2024-09-22 11:05:41 +08:00
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ACadSharp.Entities;
2024-09-22 11:05:41 +08:00
using CommunityToolkit.Diagnostics;
2025-02-10 20:53:40 +08:00
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.Mvvm.Messaging.Messages;
2024-09-22 11:05:41 +08:00
using CSMath;
2025-02-10 20:53:40 +08:00
//using OpenAI.Chat;
2024-09-22 11:05:41 +08:00
namespace ConsoleApp
{
internal class Program
{
static void Main(string[] args)
{
//TEST();
2025-02-10 20:53:40 +08:00
var re = new Receive();
var p = new Person();
var value = new ValueChangedMessage<Person>(p);
var propChange = new PropertyChangedMessage<string>(new Program(),nameof(Person.Name),"bob","jenny");
WeakReferenceMessenger.Default.Send(propChange);
WeakReferenceMessenger.Default.Send(value);
WeakReferenceMessenger.Default.Send(p);
//ChatClient client = new ChatClient("gpt-4o", Environment.GetEnvironmentVariable("OPEN_API_KEY"));
//ChatCompletion completion = client.CompleteChat("say 'this is a test.'");
//Console.WriteLine($"[ASSISTANT]:{completion.Content[0].Text}");
}
private static void TEST()
{
var str = "";
var a = 10.0;
2024-09-22 11:05:41 +08:00
double b = 100;
2024-10-08 16:21:39 +08:00
Debug.Assert(a == b);
2024-09-22 11:05:41 +08:00
//确保str满足条件才能继续执行不满足即抛出异常
Guard.IsNotNullOrEmpty(str);//抛出异常
Guard.IsLessThan(a, b);
}
public void ReadCAD()
{
var file = @"D:\Users\Zhanggg\Desktop\Drawing1.dwg";
var cad = new ACadSharp.IO.DwgReader(file).Read();
var polylines = cad.Entities.OfType<LwPolyline>().Where(l => l.Layer.Name == "RQ");
var sizes = cad.Entities.OfType<TextEntity>().Where(t => t.Layer.Name == "RQ");
var entities = cad.Entities.OfType<Insert>().Where(i => i.Layer.Name == "0" || i.Layer.Name == "RQ" || i.Layer.Name == "GAS" || i.Layer.Name == "燃具");
var sb = new StringBuilder();
sb.AppendLine("多段线");
foreach (var line in polylines)
{
var first = line.Vertices.First();
var last = line.Vertices.Last();
sb.AppendLine($"起点:{first.Location};终点:{last.Location}");
}
foreach (var insert in entities)
{
if (insert.Block.Name == "立管0")
{
var temp = double.MaxValue;
string t = default;
foreach (var item in sizes)
{
var current = item.InsertPoint.DistanceFrom(insert.InsertPoint);
if (current < temp)
{
temp = current;
t = item.Value;
}
}
}
//盲板
else if (insert.Block.Name == "盲板")
{
}
//旋塞阀
else if (insert.Block.Name.Contains("旋塞"))
{
}
//商业预留,法兰球阀
else if (insert.Block.Name.Contains("法兰球阀"))
{
}
//锁闭型螺纹铜球阀
else if (insert.Block.Name.Contains("户内阀"))
{
}
//燃气表
else if (insert.Block.Name == "计量表")
{
}
//自闭阀
else if (insert.Block.Name == "自闭阀")
{
}
//热水器
else if (insert.Block.Name == "RSQ")
{
}
//燃气灶
else if (insert.Block.Name == "燃气灶")
{
}
//球阀+丝堵
else if (insert.Block.Name.Contains("丝堵"))
{
}
sb.AppendLine($"图层名:{insert.Layer.Name};图块名:{insert.Block.Name};插入点:{insert.InsertPoint}");
}
File.WriteAllText(@"D:\Users\Zhanggg\Desktop\Drawing1.dwg" + ".txt", sb.ToString(), Encoding.UTF8);
//foreach (var insert in entities)
//{
// var blocks = insert.Block.Entities.OfType<Dimension>().Where(d=>d.Text.Contains("52D"));
//}
2024-09-22 11:05:41 +08:00
}
}
2025-02-10 20:53:40 +08:00
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public partial class Receive:ObservableRecipient,IRecipient<ValueChangedMessage<Person>>,IRecipient<Person>,IRecipient<PropertyChangedMessage<string>>
{
public Receive()
{
IsActive = true;
//WeakReferenceMessenger.Default
// .Register<Person>(
// this,
// (r, m) =>
// {
// });
}
void IRecipient<ValueChangedMessage<Person>>.Receive(ValueChangedMessage<Person> message)
{
}
void IRecipient<Person>.Receive(Person message)
{
}
void IRecipient<PropertyChangedMessage<string>>.Receive(PropertyChangedMessage<string> message)
{
}
}
2024-09-22 11:05:41 +08:00
}