明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8382|回复: 47

求高手帮忙完成多段线随意加关键点的程序

  [复制链接]
发表于 2011-9-17 22:08 | 显示全部楼层 |阅读模式
本帖最后由 raimo 于 2011-9-19 20:45 编辑

最近看到有人发多段线加关键点的程序,这个程序还是比较实用的..
试过之后觉得不是每次都有效.而且似乎和关键点顺序有关..CAD自带的用起来不方便, 比较麻烦

根据我的理解,我觉得这个程序似乎可以这样来实现(平时我也是按这个步骤来分步操作的..)
1.指定捕捉多段线上任意点, 用break [f]来实现打断
2.用多段线连接来重新连接这两段多段线..
这样不就可以轻松实现在任意位置给多段线增加关键点了吗,而且还不受直线弧线问题的影响

可惜我只会想,不会用LSP语言来写出这段程序..也不知道我这一番胡思乱想是不是正确

这其中捕捉,打断似乎不难.但如何识别这两段新的多段线就是刚打断的,再连接起来.我就不知道如何做到了..请坛子里的高手出手帮帮忙实现吧,多谢了...

发表于 2011-9-17 22:36 | 显示全部楼层
打断前用entlast获得最后一个图元,打断后用entnext获得新生成的图元,再连接起来。不知道这样行不行?
 楼主| 发表于 2011-9-18 21:09 | 显示全部楼层
顶上去..希望能有朋友能帮忙出手解决
发表于 2011-9-20 12:37 | 显示全部楼层
;;;多段线加点
  1. (defun c:tt  (/ CMDECHO EN PT ENDEN SS osmode)
  2.   (setq cmdecho (getvar 'cmdecho))
  3.   (setq osmode (getvar 'osmode))
  4.   (setvar 'cmdecho 0)
  5.   (setvar 'osmode 930)
  6.   (and
  7.     (setq en (car (entsel "\n选择多段线:")))
  8.     (WCMATCH (cdr (assoc 0 (entget en))) "*POLYLINE")
  9.     (setq pt (getpoint "\n打断位置点: "))
  10.     (progn
  11.       (setq enden (entlast))
  12.       (command "_break" en "near" pt pt)
  13.       (setq ss (ssadd))
  14.       (while (setq enden (entnext enden))
  15.         (if (not (member (cdr (assoc 0 (entget enden)))
  16.                          '("ATTRIB" "VERTEX" "SEQEND")))
  17.           (ssadd enden ss)
  18.           )
  19.         )
  20.       (command "pedit" en "j" ss "" "")
  21.       )
  22.     )
  23.   (setvar 'cmdecho cmdecho)
  24.   (setvar 'osmode osmode)
  25.   (princ)
  26.   )

评分

参与人数 2金钱 +70 收起 理由
yoyoho + 50 赞一个!
raimo + 20 很给力! 没钱了只有这么多不好意思

查看全部评分

 楼主| 发表于 2011-9-20 22:58 | 显示全部楼层
Gu_xl 发表于 2011-9-20 12:37
;;;多段线加点

Gu_xl 版主真棒!!!
这就是我想要的啦,谢谢你实现了我的愿望
发表于 2011-9-21 00:03 | 显示全部楼层
可以连续加点就好了
发表于 2011-9-21 09:46 | 显示全部楼层
感谢Gu_xl舨主分享程序
,学习了!
发表于 2011-9-21 10:03 | 显示全部楼层
Gu_xl 版主您的程序不错喔!
测试一下,对有圆弧的PL线也支持喔!
发表于 2011-9-21 11:25 | 显示全部楼层
楼上有那么多点加吗,还不如从前新画一个
发表于 2011-9-21 12:31 | 显示全部楼层
这个用几何学算出凸度新点位置再更新可能会更好些
连续加点也方便
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 03:08 , Processed in 0.190343 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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