明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 梦想家-DING

有没有前辈研究过最大包围盒中心替换图形

[复制链接]
发表于 2023-3-2 19:13:31 | 显示全部楼层
dear sir
see demo.................

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2023-3-2 19:21:04 | 显示全部楼层
  1. (vl-load-com)
  2. (defun C:DBB (/ n); = Draw Bounding Boxes
  3.   (prompt "\nTo draw bounding boxes around each,")
  4.   (if (setq ss (ssget))
  5.     (repeat (setq n (sslength ss)); then
  6.       (vla-getboundingbox (vlax-ename->vla-object (ssname ss (setq n (1- n)))) 'minpt 'maxpt)
  7.       (command "_.rectangle" "_none" (vlax-safearray->list minpt) "_none" (vlax-safearray->list maxpt))
  8.     ); repeat
  9.   ); if
  10.   (princ)
  11. ); defun
  12. (prompt "\nType DBB to Draw the Bounding Boxes of selected object(s).")
回复

使用道具 举报

发表于 2023-3-2 19:42:49 | 显示全部楼层
sachindkini 发表于 2023-3-2 19:13
dear sir
see demo.................

能否求出的最小实体包围盒呢
希望大神能够完善一下.
回复

使用道具 举报

 楼主| 发表于 2023-3-2 20:02:21 | 显示全部楼层

Between Graphics and Graphics,Whether the replace operation can be changed in a central location?
回复

使用道具 举报

发表于 2023-3-7 10:39:05 | 显示全部楼层
写这功能不超过5分钟
回复

使用道具 举报

发表于 2023-3-7 10:45:24 | 显示全部楼层
本帖最后由 d1742647821 于 2023-3-7 10:46 编辑

看标题没写语言要求,.net区来凑热闹,短短30行,需要使用ifox

  1. [CommandMethod(nameof(CS5))]
  2.     public static void CS5()
  3.     {
  4.         var r1 = Env.Editor.GetEntity("\n选择对象");
  5.         if (r1.Status != PromptStatus.OK)
  6.             return;
  7.         var r2 = Env.Editor.GetEntity("\n选择要替换的对象");
  8.         if (r2.Status != PromptStatus.OK || r2.ObjectId == r1.ObjectId)
  9.             return;
  10.         using var tr = new DBTrans();
  11.         var ent1 = (Entity)tr.GetObject(r1.ObjectId);
  12.         var ent2= (Entity)tr.GetObject(r2.ObjectId);
  13.         var pt1 = ent1.GeometricExtents.MidPoint();
  14.         var pt2 = ent2.GeometricExtents.MidPoint();
  15.         var ent3=(Entity)ent1.Clone();
  16.         ent3.Move(pt1, pt2);
  17.         tr.CurrentSpace.AddEntity(ent3);
  18.         Env.Editor.Redraw(ent3);
  19.         var pko = new PromptKeywordOptions("\n是否替换?<Y>");
  20.         pko.Keywords.Add("Y", "Y", "是(Y)");
  21.         pko.Keywords.Add("N", "N", "否(N)");
  22.         var r3 = Env.Editor.GetKeywords(pko);
  23.         if(r3.Status==PromptStatus.OK && r3.StringResult.ToUpper() == "Y")
  24.         {
  25.             ent2.ForWrite(e => e.Erase());
  26.         }
  27.         else
  28.         {
  29.             tr.Abort();
  30.         }
  31.     }

回复

使用道具 举报

发表于 2023-3-8 08:12:43 来自手机 | 显示全部楼层
写过,自己常用,有空发
回复

使用道具 举报

发表于 2023-3-8 10:47:28 | 显示全部楼层

这个代码哪里不对

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2023-3-8 16:39:25 | 显示全部楼层
本帖最后由 wzg356 于 2023-3-8 16:43 编辑


看看是不是这种

早就高频使用了,觉得用的人不多,难度也不大,就没发
刚发这儿http://bbs.mjtd.com/thread-187313-1-1.html
回复

使用道具 举报

 楼主| 发表于 2023-3-8 17:05:24 | 显示全部楼层
wzg356 发表于 2023-3-8 16:39
看看是不是这种

早就高频使用了,觉得用的人不多,难度也不大,就没发

是图形与图形,譬如:选中三角形替换圆形
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 09:47 , Processed in 0.168089 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表