明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1628|回复: 6

定距打断于点

[复制链接]
发表于 2020-7-30 21:37:39 | 显示全部楼层 |阅读模式
40明经币
本帖最后由 xzklk 于 2020-11-15 23:06 编辑

打断于点要求:输入距离后鼠标点选图形,靠近端点那边打断。如图程序执行输入距离为1,点选最上面直线右边则从直线右边端点距离1位置打断,点左边则从左边打断。希望程序最好还能支持多段线,打断距离能带记忆,能循环使用。谢谢了!
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

感觉你表述的不是很清晰,矩形?单线?相交线?等等各种情况都得说明一下吧
发表于 2020-7-30 21:37:40 | 显示全部楼层
感觉你表述的不是很清晰,矩形?单线?相交线?等等各种情况都得说明一下吧
回复

使用道具 举报

 楼主| 发表于 2020-9-4 02:18:08 | 显示全部楼层
应该发错地方了,没人愿意回答
回复

使用道具 举报

发表于 2020-9-4 07:49:29 | 显示全部楼层

插眼,收藏下
回复

使用道具 举报

 楼主| 发表于 2020-11-15 22:45:28 | 显示全部楼层
发错地方了
回复

使用道具 举报

 楼主| 发表于 2023-3-27 14:25:26 | 显示全部楼层
(defun c:R4 (/ en JG pt1 pt2 pt3 d_end ang );直边变三段
(command "ucs" "w")
  (if (not offset_1) (progn (setq offset_1 0.5)) (setq offset_12 offset_1))
  (setq offset_12 (getreal (strcat "\n输入偏移值<" (rtos offset_1) ">:"))) ;输入的实数
  (if (not offset_12) (setq offset_12 offset_1) (setq offset_1 offset_12))
(while (setq en (ssname (ssget '((0 . "LINE"))) 0))
(if en (progn
  (setq JG  offset_12) ;(setq JG ( * offset_12 0.5))
  (setq pt3 (vlax-curve-getEndPoint en))
  (setq pt1 (vlax-curve-getStartPoint en))
  (setq d_end (vlax-curve-getDistAtPoint en pt3))
  (setq pt2 (vlax-curve-getpointatdist en (/ d_end 2)))
  (setq ang (ANGLE pT3 PT1)
     PC1 (polar pt1 (+ ang (* 1.0 pi)) JG )
     PC3 (polar pt3 (+ ang (* 2.0 pi)) JG ))
(makeline pt3 PC3)(makeline pt1 PC1)
(makeline pc1 PC3) (entdel en) ))
))
回复

使用道具 举报

发表于 2024-11-9 12:20:16 | 显示全部楼层
6楼的代码要是可以根据鼠标点击的位置判断是打断直线的哪一端就完美了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 05:48 , Processed in 0.172673 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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