QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 9072|回复: 11
收起左侧

[原创] 连接多段线程序(LISP)

[复制链接]
发表于 2006-7-9 18:35:03 | 显示全部楼层 |阅读模式 来自: 中国安徽芜湖

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9 ~9 f" O% M* n$ Z0 g
;;                                  ;;
' ]' \4 N! k" {;;          连接多段线程序          ;;
8 F2 h6 H6 N  o* a. Y& ^. W;;                                  ;;
# g$ D4 \& k1 W; T+ _! M) a;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- t* W$ T5 F  s9 V' u3 T
;;MYCAD V3, HZH2000,2005.6.12 / Y) r; P' \( {: |/ S' }4 }* k# d% }- D
(defun c:line_link()
& C/ Z- Z$ T/ M7 C+ i  (setvar "CMDECHO" 0)
, g1 z' X  Y  W. ^' \2 _6 ]  (setq ss nil)
: l/ n% U% O& B8 p  (prompt "\n请选择所有要连接的多段线、直线或圆弧: ")  . T9 G# [( @, m9 F# ~
  (setq ss (ssget '((0 . "[~B . C-K . M-Z]*"))))
) F: v2 o( o7 e6 \. U2 Q0 m) {  (command "undo" "begin")% i1 V8 @8 h6 s( T- x. z2 x
  
- Q$ B8 ^: V- J+ K. B- i  @' z  (setq iss 0). }  k- z9 {% y1 D/ Z/ `
  (setq jss 0)  
) ^; L: l' P+ S' c* A2 g) i- k. C5 w  (while (< iss (sslength ss) )! U; v; L$ [0 i& W! z0 z
    (setq en (ssname ss iss))) n" R: G; \3 h1 A& b/ l) J
    (setq ed (entget en))
. Y. I& L2 H) A8 }% o3 f+ k    (setq e_type (cdr (assoc '0 ed)))
6 \5 N' T5 ?( W" v: [& ^7 `    (if (= (cdr (assoc '70 ed)) 1)2 Q- t& J- I9 [7 d2 C
        (ssdel en ss)
, M! z" @/ a1 L+ r        (setq iss (+ 1 iss))2 x" ~" Y1 Q! }$ |
    ): x9 u* ~: b! t( a0 N8 L
    5 f( p& ^2 l% ^( l& S# s4 ^; h
    (if (/= e_type "LWPOLYLINE")
" h# N- e8 B# O        (setq jss 999)]
8 A9 p- j' {& c8 N# Y% u% _3 S4 Z+ m& B    )   
. g3 S5 Y3 v% h" s3 n3 l+ _9 j  )
! H$ z! U! v- Q2 f' W. Z  
. w/ A3 C  s6 M; X* K& U  (if (= jss 0)      * e" y0 X  P' z) v" g6 ]+ S7 C
      (command "pedit" "M" ss "" "J" "" "" ). w) H1 j! n: K3 n0 w" D
      (command "pedit" "M" ss "" "y" "J" "" "" )$ @0 z6 {4 w& b' U5 q5 m- Y2 h
  )
4 j0 T$ K5 \  {  (command "undo" "end")
) h1 m! C" O8 t& c4 e' \/ l) x  (princ "\n 连接完成!")
6 ^# Y$ A8 V/ D; w  (princ)
+ B6 C& O; \' @+ B" U* Q )
发表于 2006-7-9 18:48:48 | 显示全部楼层 来自: 中国新疆乌鲁木齐
还要这样吗?/ [7 Z% e0 O- d( R* Q7 J( A
不是有自带的连接功能嘛!
, {& P: G% X! c) o$ o修改/对象/多线段,按命令提示输入M后回车,Y回车,不就完了,还用得着编一个小程序吗?
发表于 2006-9-2 09:59:09 | 显示全部楼层 来自: 中国广东深圳

连接多段线程序(LISP)

在CAD里面输入命令PE,回车- i% T5 [5 V' Q
选定的对象不是多段线* A) L9 r& s' @3 z3 f6 t
是否将其转换为多段线? <Y>回车& K& O/ G) y0 d4 L6 H
输入选项 / M, N" w9 g  }- G1 c& ]6 i
[闭合(C)/合并(J)/宽度(W)/编辑支持楼主点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)+ Q7 m. U3 O( r' R- u) j& l
/放弃(U)]: j回车
  Y& ^2 V$ E% S选择对象: 可以框选(定对角点: 找到 4 个)也可以一个个选,选取好后,回车.8 V9 f: N8 e) x% H1 i8 o$ c
选择对象:% G/ j1 v. C7 [1 S7 ^
3 条线段已添加到多段线
* A+ I  B( d/ B4 R& d5 X- i经过这样的操作就可以将多段线连成一条了
发表于 2006-9-2 12:25:31 | 显示全部楼层 来自: 中国广东汕头
3楼的方法很好,简单好用,我试了,谢谢。
发表于 2006-9-14 10:54:35 | 显示全部楼层 来自: 中国上海

帮帮我好吗?

原帖由 bozh79 于 2006-7-9 18:48 发表' h) x9 k1 ~9 B" m7 E. x/ F- m
还要这样吗?
' D- Q0 Z" i  C. a/ s. E3 ]! a不是有自带的连接功能嘛!+ w3 l- }) L, a* `* ]6 U2 ?' H; {
修改/对象/多线段,按命令提示输入M后回车,Y回车,不就完了,还用得着编一个小程序吗?
8 K0 ?. k2 [! C- k* {1 r, K
我划线时常常发现直线和曲线怎么老连不上不能变成一条多段线呀?
发表于 2006-10-31 23:39:31 | 显示全部楼层 来自: 中国福建漳州
是这样的 谢谢啦
发表于 2007-2-9 10:23:02 | 显示全部楼层 来自: 中国陕西西安
楼主没有交代程序放在那才能运行!
发表于 2010-1-19 13:59:00 | 显示全部楼层 来自: 中国台湾
简化我PE的输入命令 谢谢啦
发表于 2010-2-1 16:10:33 | 显示全部楼层 来自: 中国江苏无锡
什么用命令啊..用命令太烦了啊...
) x+ M7 M: f0 d- b% U不过不知道这个程序好不好用....先试试用...
9 x( ]' Q- E5 k2 R$ C" E
5 E' T* R% {9 W我觉得目前比较好用的就是贱人工具箱的.连接功能...
- x# i( R! `% p' G: I9 d3 L4 G1 J2 H" Z  Z: H+ Q' R
我经常用...特别是旋转实体时,大家应该知道吧.都要求是闭合图形的..烦死了..7 q9 {; Q3 Z$ O

7 m! J7 u! z$ P* I不过.现在问题来了,有的时候,即使有限公司.0001的小间隙,都连接不起来..真讨厌啊..8 O9 `! }. }# `" C2 Y6 ^, G3 Q

  z. ]! W7 Q; |" q如果能设置一下兼容值,比如兼容0.1以下的尺寸.全部耦合.那用起来不是更方便吗..
发表于 2010-2-2 12:13:34 | 显示全部楼层 来自: 中国台湾
Command: pe5 x6 N0 x- {8 U
PEDIT Select polyline or [Multiple]: m: `, i6 o5 s$ R/ p1 j% W/ m+ S
Select objects: Specify opposite corner: 946 found
4 ~3 h8 L; S/ N  v( I3 _0 w8 J; k1 rSelect objects:- O% n* E; C: C& ?1 Q
Convert Lines and Arcs to polylines [Yes/No]? <Y>
" c/ X- D! l, ], R) P% oEnter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]: j
- \; C# ^- k9 j4 s3 }" H  N+ AJoin Type = Extend6 p. \3 `* ]3 C
Enter fuzz distance or [Jointype] <0.000>: 0.0001   ;<=== 容差

评分

参与人数 1三维币 +3 收起 理由
woaishuijia + 3 技术讨论

查看全部评分

发表于 2010-6-4 22:00:32 | 显示全部楼层 来自: 中国上海
学习了。
发表于 2010-7-8 12:44:44 | 显示全部楼层 来自: 中国广东深圳
希望能点一下就能够串连接起来的程序
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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