明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3234|回复: 15

[基础] 如何在框选线段的端点插入块

  [复制链接]
发表于 2013-2-28 17:49 | 显示全部楼层 |阅读模式
如题

如果框选上端,也能画圆或者插入块

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-5-6 15:44 | 显示全部楼层
框选直线端点插块,非常实用!
回复 支持 1 反对 0

使用道具 举报

发表于 2013-11-27 13:28 | 显示全部楼层
我下载了,上面的程序,作到工作中,有不小的帮助。
回复 支持 0 反对 1

使用道具 举报

发表于 2013-3-1 22:48 | 显示全部楼层
這個問題提得好,有創意,但不会写呀
发表于 2013-3-2 07:43 | 显示全部楼层
vlax-curve-getStartPoint
insert

点评

版主,所选的不一定是起始点吧  发表于 2013-3-4 15:07
发表于 2013-3-2 15:32 | 显示全部楼层
本帖最后由 为什么任兵 于 2013-3-2 15:33 编辑

看看是你想要的吗??
命令 tt13







本帖子中包含更多资源

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

x
发表于 2013-3-2 20:20 | 显示全部楼层
格下的程序一定是人家不想要的,要是能识别交点不就就好了如图所示,
所以P1 AND P2有可能都要加

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-3-4 14:56 | 显示全部楼层
为什么任兵 发表于 2013-3-2 15:32
看看是你想要的吗??
命令 tt13

是的,大侠
能附上源码研究一下吗
 楼主| 发表于 2013-3-4 18:44 | 显示全部楼层
本帖最后由 qcw911 于 2013-3-4 18:45 编辑

  1. (defun c:tt (/ ss i lst s1 pt e1 e2)
  2. ;;;  (setq  ss  (ssget '((0 . "LINE"))))
  3.   (setq xy (last (ssnamex (setq ss (ssget '((0 . "LINE")))) 0)))
  4.   (setq x (last (cadr xy)) y (last (cadddr xy)))
  5.   (command "RECTANG" x y)
  6.   (setq myname (entlast))
  7.   (setq  i   -1)
  8.   (setq   LSTe '())
  9.   (setq   LSTs '())
  10.   (repeat (sslength ss)
  11.     (setq s1  (ssname SS (setq i (1+ i)))
  12.     pte  (dxf 11 (entget s1))
  13.     pts  (dxf 10 (entget s1))
  14.     lste (cons pte lste)
  15.           lsts (cons pts lsts)
  16.     )
  17.   )
  18.   (setq  lsts (vl-sort lsts
  19.          (function (lambda (e1 e2) (> (car e1) (car e2))))
  20.       )
  21.   )
  22.   (setq  lste (vl-sort lste
  23.          (function (lambda (e1 e2) (> (car e1) (car e2))))
  24.       )
  25.   )
  26.   (setq lst (append lsts lste)) ;合并元素
  27.   (setq n (length  lst )) ;表内元素个数
  28.   (setq ii 0)
  29.   (repeat n
  30.        (setq ptn (nth ii lst))
  31.           (setq ptn_x(car ptn))
  32.           (setq ptn_y(cadr ptn))
  33.           (setq x_x (car x))
  34.           (setq x_y (cadr x))
  35.           (setq y_x (car y))
  36.           (setq y_y (cadr y))
  37.         
  38.          ;判断ptn点是否在x,y点形成的矩形区域内
  39.           ;这块不会写  那个大侠帮帮忙

  40.    
  41.        (setq ii (1+ ii))
  42.    )

  43.    
  44. ;;;  lst
  45. )
  46. (defun dxf (code elist) (cdr (assoc code elist)))
哪位大侠帮帮忙写一下
或者有其他思路??

发表于 2013-3-4 19:54 | 显示全部楼层
qcw911 发表于 2013-3-4 18:44
哪位大侠帮帮忙写一下
或者有其他思路??

可以参考使用ssnamex函数来获取鼠标选择物体的位置!结合vlax-curve-getstartpoint 和vlax-curve-getendpoint函数来判断块插入是在曲线起点还是端点!
发表于 2013-3-4 20:55 | 显示全部楼层
qcw911 发表于 2013-3-4 14:56
是的,大侠
能附上源码研究一下吗

大侠不敢当,就是比较简单的算法

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
qcw911 + 1 很给力!

查看全部评分

 楼主| 发表于 2013-3-5 19:09 | 显示全部楼层
为什么任兵 发表于 2013-3-4 20:55
大侠不敢当,就是比较简单的算法

非常感谢,根据你提供的程序,解决了我工作上的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 13:10 , Processed in 0.589313 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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