明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 73814|回复: 444

【已解决】框选图块,自动画线连接图块插入点的工具(感谢Gu_xl 版主的热情帮助)

  [复制链接]
发表于 2011-7-6 15:44:37 | 显示全部楼层 |阅读模式
本帖最后由 daidong013 于 2011-7-7 21:08 编辑

求可以框选图块,自动画线连接图块插入点的工具!~~

这里有一个caoyin版主以前做的类似工具只能点选一并发上做个参考!~


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-7-7 15:23:03 | 显示全部楼层
本帖最后由 Gu_xl 于 2012-3-31 14:07 编辑

回复 daidong013 的帖子
  1. (defun c:tt(/ os ss pl p1 p2)
  2.   (setq os (getvar 'osmode))
  3.   (setvar 'osmode 0)
  4.   (setq ss (ssget '((0 . "insert"))))
  5.   (if ss
  6.     (progn
  7.       (setq pl (GXL-GETSSBOX ss)
  8.             p1 (car pl)
  9.             p2 (cadr pl)
  10.             ss (GXL-SEL-SS->LIST ss)
  11.             )
  12.     ;;;此处画一个圆,图块投影到园上排序
  13.       (command "_pline" p1 "a" "s" (list (car p1) (cadr p2)) p2 "s" (list (car p2) (cadr p1)) p1 "")
  14.       (setq en (entlast))
  15.       (setq ss (vl-sort ss '(lambda (a b)
  16.                            (< (vlax-curve-getParamAtPoint en (vlax-curve-getclosestpointto en (gxl-dxf a 10)))
  17.                               (vlax-curve-getParamAtPoint en (vlax-curve-getclosestpointto en (gxl-dxf b 10)))
  18.                               )
  19.                            )
  20.                         )
  21.             )
  22.         (command "_pline")
  23.         (mapcar 'command (mapcar '(lambda (X) (gxl-dxf x 10)) ss))
  24.       (command "")
  25.       (entdel en)
  26.       )
  27.     )
  28.   (setvar 'osmode os)
  29.   (princ)
  30.   )
  31. ;; gxl-GetssBox 取得选择集的实体外矩形框
  32. (defun gxl-GetssBox        (ss / maxpt maxptlst minpt minptlst obj x ss1)
  33.   (setq ss1 (gxl-Sel-SS->List ss))
  34.   (foreach x ss1
  35.     (setq obj (vlax-ename->vla-object x))
  36.     ;(setq minPt (vlax-make-safearray vlax-vbdouble '(0 . 2)))
  37.     ;(setq maxPt (vlax-make-safearray vlax-vbdouble '(0 . 2)))
  38.     (vla-GetBoundingBox Obj 'minpt 'maxpt) ; 得到包围框
  39.     (setq minPt (vlax-safearray->list minPt))
  40.     (setq maxPt (vlax-safearray->list maxPt))
  41.     (setq minPtlst (append minPtlst (list minPt)))
  42.     (setq maxPtlst (append maxPtlst (list maxPt)))
  43.   ) ;_ 结束foreach
  44.   (setq        minPt (list (apply 'min (mapcar 'car minPtlst))
  45.                     (apply 'min (mapcar 'cadr minPtlst))
  46.                     0
  47.               ) ;_ 结束list
  48.   ) ;_ 结束setq
  49.   (setq        maxPt (list (apply 'max (mapcar 'car maxPtlst))
  50.                     (apply 'max (mapcar 'cadr maxPtlst))
  51.                     0
  52.               ) ;_ 结束list
  53.   ) ;_ 结束setq
  54.   ;(command "rectang" minPt maxPt)
  55. (list minPt maxPt)
  56. ) ;_ 结束defun

  57. (defun gxl-Sel-SS->List        (ss / i s )
  58.     (if ss
  59.   (repeat (setq i (sslength ss))
  60.   (setq s (cons (ssname ss (setq i (1- i))) s))
  61.     )
  62.     )
  63. )
  64. ;;;==================================================================
  65. ;;;(gxl-dxf ent i )取出图元索引i对应的值
  66. ;;;==================================================================
  67.   (defun gxl-dxf (ent i)
  68.     (cond ((= (type ent) 'ename)
  69.             (cdr (assoc i (entget ent)))
  70.              )
  71.           ((= (type ent) 'list)
  72.            (cdr (assoc i ent))
  73.            )
  74.     ) ;_ if
  75.   )

点评

哇,画个pline圈的思路太巧妙了!学习了  发表于 2012-11-26 21:00

评分

参与人数 1明经币 +1 收起 理由
vlisp2012 + 1 赞一个!

查看全部评分

回复 支持 2 反对 0

使用道具 举报

发表于 2012-4-15 23:36:07 | 显示全部楼层
Gu_xl 发表于 2012-4-15 23:09
找yjr111 ,他已经写好了哦!

托G版的福,的确写好了,我会给他发过去。
另外G版的与线平齐程序一直在用(自己写的还是不顺手啊),当所选物体图层或对齐线图层有线宽时就自动显示线宽了,能不能修改一下,不显示线宽?谢谢!

点评

你自己将命令在封装一下,程序最后关闭线宽显示不就OK了!(SETVAR "LWDISPLAY" 0)  发表于 2012-4-23 22:19
回复 支持 0 反对 1

使用道具 举报

发表于 2023-8-2 14:22:38 | 显示全部楼层
yjr111 发表于 2012-4-15 23:36
托G版的福,的确写好了,我会给他发过去。
另外G版的与线平齐程序一直在用(自己写的还是不顺手啊),当 ...

请问可以发一份给我吗?
 楼主| 发表于 2011-7-6 17:53:36 | 显示全部楼层
坐在沙发上!~~等!!!!!~~~
 楼主| 发表于 2011-7-6 21:02:24 | 显示全部楼层
坐在板凳上!~等!~~等!~~~
 楼主| 发表于 2011-7-7 09:08:07 | 显示全部楼层
只能坐到地板上了!~~
发表于 2011-7-7 14:28:15 | 显示全部楼层
框选的话 插入点的连接顺序不好判断啊
 楼主| 发表于 2011-7-7 19:47:03 | 显示全部楼层
回复 Gu_xl 的帖子

就是这样的效果,真的太感谢版主了!~~
发表于 2011-7-9 13:52:13 | 显示全部楼层
版主真是太牛人!
发表于 2011-7-13 09:23:01 | 显示全部楼层
如果连接夹点呢 呵呵 ?请斑竹 继续出招。。。
发表于 2011-10-16 23:52:03 | 显示全部楼层
测试了一下  太强大了  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 20:09 , Processed in 0.204119 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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