乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 203|回复: 9

从选择中创建列表

[复制链接]

8

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
44
发表于 2021-2-14 04:47:37 | 显示全部楼层 |阅读模式

yv0npf3y0of.png

yv0npf3y0of.png

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2021-2-18 19:35:18 | 显示全部楼层
我也需要帮助。吉尔,请帮帮忙!
回复

使用道具 举报

0

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
4
发表于 2021-8-22 07:17:05 | 显示全部楼层
嗨,
我完全无法理解这个要求。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2021-8-22 10:58:35 | 显示全部楼层
选择上面的所有(7)行,并分成(7)个数组(在数组数组中)(每一行从左到右排序)。
回复

使用道具 举报

0

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
4
发表于 2021-8-22 21:28:01 | 显示全部楼层
谢谢你先生。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2021-8-23 03:07:22 | 显示全部楼层
这就是我所担心的,输入数据结构不佳。使用AutoCAD表格会容易得多...自动执行组织不良的绘图是解决GIGO综合症的方法,不过,这是一个使用 LINQ 的尝试,似乎给出了正确的结果。 static string[][] GroupTextsByRow(SelectionSet selection, double rowHeight)。
{。
双圆到高(双d)=>。
Math.Round(d / rowHeight) * rowHeight;。
Point3d textPosition(DBText txt) =>。
腾讯网.Justifi == AttachmentPoint.BaseLeft ?腾讯网.位置 : txt.对准点;。
using (var tr = new OpenCloseTransaction())。
{。
返回所选内容,GetObjectIds()。
,Where(id => id.ObjectClass.DxfName == “TEXT”)。
,Select(id => (DBText)tr.GetObject(id, OpenMode.ForRead))。
,GroupBy(txt => roundToRowHeight(textPosition(txt).Y))。
,OrderByDescending(grp => grp.键)。
,Select(grp => grp.OrderBy(txt => textPosition(txt).十)。
,Select(txt => txt.文本字符串)。
,ToArray())。
,ToArray();。
}。
}A testing command: [CommandMethod(“TEST”)]。
公共静态 void Test()。
{。
var doc = Application.DocumentManager.MdiActiveDocument;。
var db = doc.数据库;。
var ed = doc.编辑;。
var filter = new SelectionFilter(new[] { new TypedValue(0, “TEXT”) });。
var psr = ed.GetSelection(filter);。
如果 (psr.状态 != PromptStatus.OK)。
返回;。
var pdr = ed.GetDistance(“\nRow height: ”);。
如果 (pdr.状态 != PromptStatus.OK)。
返回;。
var rows = GroupTextsByRow(psr.值,pdr。值);。
foreach (var row in rows)。
{。
编辑,WriteMessage($“\n[{string.Join(“, ”, row)}]“);。
}。
}。
回复

使用道具 举报

0

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
4
发表于 2021-8-23 04:28:08 | 显示全部楼层
谢谢你,吉尔,但我弄错了。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2021-8-23 07:29:50 | 显示全部楼层
这些是使用lambda运算符的局部函数
这些功能随C#7(VS2017)用于本地函数,随C"6(VS2015)用于lambda运算符而来
您使用的是哪个版本的Visual Studio
如果您确实想使用旧版本的Visual Studio,可以定义“旧式”方法
静态双圆路高(双d,双行高)
{
返回数学。圆形(d/行高)*行高
}
静态点3D文本位置(DBText.txt)
{
返回txt。Justify==附件点。左撇子
txt。位置:txt.AlignmentPoint
}
<div>静态字符串〔〕〔〕GroupTextsByRow(选择集选择,双行高)</div>
{
使用(var tr=new OpenCloseTransaction())
{
返回selection.getObjectId()
,其中(id=>id.ObjectClass.DxfName==“文本”)
。选择(id=>(DBText)tr。GetObject(id,OpenMode.ForRead))
GroupBy(txt=>RoundToRowHeight(TextPosition(txt))。Y、 行高))
.OrderByDescending(grp=>grp.Key)
选择(grp=>grp.OrderBy(txt=>TextPosition(txt.X)
。选择(txt=>txt.TextString)
.ToArray())
.ToArray()
}
}
回复

使用道具 举报

0

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
4
发表于 2021-8-24 09:35:02 | 显示全部楼层
这很有魅力。非常感谢。(我使用VS 2015)
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2021-8-24 10:49:59 | 显示全部楼层
吉尔,请帮帮我!谢谢您们。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 01:14 , Processed in 0.271489 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表