明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: lml2023

[提问] 谁有这样的插件,能够一次性修剪多个图形外的线段的线头,是一次性哦

[复制链接]
 楼主| 发表于 2024-8-20 09:08:06 | 显示全部楼层
天天问 发表于 2024-8-19 22:09
难道EXTRIM命令不香吗?

是的,只能单个
 楼主| 发表于 2024-8-20 09:09:09 | 显示全部楼层
czb203 发表于 2024-8-19 18:29
是这样的效果吗

可以私聊报价
发表于 2024-8-20 12:01:38 | 显示全部楼层
如果出头一样长
  1. ;;;线缩短
  2. (defun c:lsc (/ os l ss n en pt1 pt2 i l1)
  3.   (setvar "CMDECHO" 0)
  4.   (setq os (getvar "OSMODE"))
  5.   (setvar "OSMODE" 0)
  6.   (if (null ***l***)
  7.     (setq ***l*** "100")
  8.   )
  9.   (setq l (getreal (strcat "\n伸长量<" ***l*** ">:")))
  10.   (if (null l)
  11.     (setq l (atof ***l***))
  12.   )
  13.   (if (= l (fix l))
  14.     (setq ***l*** (rtos l 2 0))
  15.     (progn (setq i  0
  16.                  l1 l
  17.            )
  18.            (while (/= l1 (fix l1))
  19.              (setq l1 (* l (expt 10 i))
  20.                    i  (1+ i)
  21.              )
  22.            )
  23.            (setq ***l*** (rtos l 2 (1- i)))
  24.     )
  25.   )
  26.   (setq ss (ssget '((0 . "lwpolyline,line,arc"))))
  27.   (repeat (setq n (sslength ss))
  28.     (setq en  (ssname ss (setq n (1- n)))
  29.           pt1 (vlax-curve-getstartpoint en)
  30.           pt2 (vlax-curve-getendpoint en)
  31.     )
  32.     (command "lengthen" "de" l (list en pt1) (list en pt2) "")
  33.   )
  34.   (setvar "OSMODE" os)
  35.   (princ)
  36. )
发表于 2024-8-20 16:33:28 | 显示全部楼层
-----------------------------------------------------

本帖子中包含更多资源

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

x
发表于 2024-8-21 08:52:37 | 显示全部楼层
这个需求实际上是建多个选择集的外轮廓线,然后用这些外轮廓线进行“extrim”的工作

 楼主| 发表于 2024-8-21 09:53:30 | 显示全部楼层

这个不太可以
发表于 2024-8-21 16:02:05 | 显示全部楼层

乞丐版,自己改一下吧,不会改就凑合着用
  1. (defun c:ttt  (/ area en lst n obj obj1 old pt1 pt2 ss)
  2. (setq old (getvar "osmode"))
  3. (setvar "osmode" 0)
  4. (prompt "\n选择外框:")
  5. (setq ss (ssget '((0 . "lwpolyline") (8 . "1")))) ;_无例图,假设边界图层为1
  6. (repeat (setq n (sslength ss))
  7.   (setq        en   (ssname ss (setq n (1- n)))
  8.         obj  (vlax-ename->vla-object en)
  9.         area (vla-get-area obj))
  10.   (setq        obj1 (car (vlax-safearray->list
  11.                    (vlax-variant-value (vla-offset obj 1))))) ;_无例图,假设边界偏移1为宜
  12.   (if (< (vla-get-area obj1) area)
  13.    (progn (vla-delete obj1)
  14.           (setq        obj1 (car (vlax-safearray->list
  15.                            (vlax-variant-value (vla-offset obj -1))))))) ;_无例图,假设边界偏移1为宜
  16.   (setq        lst (vl-remove-if-not '(lambda (x) (= 10 (car x)))
  17.                               (entget (vlax-vla-object->ename obj1)))
  18.         lst (mapcar 'cdr (cons (last lst) lst)))
  19.   (vla-getboundingbox obj1 'pt1 'pt2)
  20.   (vla-delete obj1)
  21.   (command "zoom"
  22.            (vlax-safearray->list pt1)
  23.            (vlax-safearray->list pt2))
  24.   (command "trim" en "" "f")
  25.   (foreach n lst (command n))
  26.   (command "" "")
  27.   (command "zoom" "p"))
  28. (setvar "osmode" old)
  29. (princ))
 楼主| 发表于 2024-8-21 16:11:54 | 显示全部楼层
夏生生 发表于 2024-8-21 16:02
乞丐版,自己改一下吧,不会改就凑合着用

en,我最终选择生成中线出头100,然后用全打断,快速选择<300的线头,即可解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:00 , Processed in 0.193502 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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