乐筑天下

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

如何使生成的文字在多边形的外面!

[复制链接]

17

主题

69

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2010-12-18 13:00:00 | 显示全部楼层 |阅读模式
如何使生成的文字在多边形的外面!发个图看看:

0jwjlff01oi.gif

0jwjlff01oi.gif


qf1pgaqp4x5.gif

qf1pgaqp4x5.gif

回复

使用道具 举报

3

主题

54

帖子

11

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2019-4-14 10:30:00 | 显示全部楼层
如果我是ssget一框选已打散的(list '(0 . "LWPOLYLINE"))线怎么分别四条线相对于其中心的方位?
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-12-18 13:28:00 | 显示全部楼层
复制代码LoopList类在这里找
测试代码:
  1.         [CommandMethod("t4")]
  2.         public static void Test4()
  3.         {
  4.             Document doc = Application.DocumentManager.MdiActiveDocument;
  5.             Editor ed = doc.Editor;
  6.             
  7.             PromptEntityOptions optsEnt = new PromptEntityOptions("\nSelect a LWPolyLine:");
  8.             optsEnt.SetRejectMessage("\nNot a LWPolyLine!");
  9.             optsEnt.AddAllowedClass(typeof(LWPolyline), false);
  10.             PromptEntityResult resEnt = ed.GetEntity(optsEnt);
  11.             if (resEnt.Status == PromptStatus.OK)
  12.             {
  13.                 Database db = doc.Database;
  14.                 using (Transaction tr = db.TransactionManager.StartTransaction())
  15.                 {
  16.                     LWPolyline pl = tr.GetObject(resEnt.ObjectId, OpenMode.ForRead) as LWPolyline;
  17.                     var ptlst =
  18.                         Enumerable
  19.                         .Range(0, pl.NumberOfVertices)
  20.                         .Select(i => pl.GetPoint2dAt(i));
  21.                     PromptPointOptions optPnt = new PromptPointOptions("\nInput a Point:");
  22.                     optPnt.AllowNone = true;
  23.                     PromptPointResult resPnt = ed.GetPoint(optPnt);
  24.                     while (resPnt.Status == PromptStatus.OK)
  25.                     {
  26.                         var res = ptlst.PointOnRegion(resPnt.Value.Convert2d(new Plane()));
  27.                         ed.WriteMessage("\nPoint:{0},Result:{1}" ,resPnt.Value, res);
  28.                         resPnt = ed.GetPoint(optPnt);
  29.                     }
  30.                 }
  31.             }
  32.         }
回复

使用道具 举报

13

主题

84

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2010-12-18 20:38:00 | 显示全部楼层

支持版主的解决方案,学习一下。
VB.NET 2010不能在调试期间编辑lambda表达式代码,必须停止调试退出AutoCAD,C#是这样吗?
如果这个问题不能解决,势必限制了Linq的应用,反复启动AutoCAD实在太麻烦。
回复

使用道具 举报

4

主题

12

帖子

4

银币

初来乍到

Rank: 1

铜币
28
发表于 2010-12-18 20:40:00 | 显示全部楼层
高难,还不懂,学习一下。
回复

使用道具 举报

1

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2010-12-18 21:17:00 | 显示全部楼层
太厉害了。
学习中
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-12-18 21:54:00 | 显示全部楼层
很少在调试阶段编辑代码,一般只有在Cad爆掉才,呵呵
现在总是不断地开Cad的,哎
习惯了,汗
回复

使用道具 举报

3

主题

20

帖子

4

银币

初来乍到

Rank: 1

铜币
32
发表于 2010-12-19 23:40:00 | 显示全部楼层
我经常在调试阶段编辑代码,如果编辑的代码不是当前运行的那行,一般调试是不会中断的,可以实时的看到效果,这样就不用重复启动CAD了。
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-12-19 23:49:00 | 显示全部楼层
lambda在C#里也无法调试。呵呵
回复

使用道具 举报

13

主题

84

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2010-12-20 18:44:00 | 显示全部楼层

又多了一个调试阶段不能编辑的因素。
AutoCAD .NET其它方面都还不错,就是这个调试,比起lisp和VBA的方便程度差太多。
最要命的是调试时不能修改窗体,难以想象大量的对话框迁移起来该多麻烦。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 02:52 , Processed in 0.441966 second(s), 75 queries .

© 2020-2025 乐筑天下

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