QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
9天前
查看: 9248|回复: 11
收起左侧

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

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

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

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

x
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 H% H- u1 \$ Z% G9 I0 Z5 n# S5 w;;                                  ;;8 M/ p& A. x. x0 F6 L3 Z
;;          连接多段线程序          ;;
$ H  f& p# r" d2 J. O' @;;                                  ;;
! c* R+ C6 H7 x0 ^: \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1 V$ C) f2 v+ a
;;MYCAD V3, HZH2000,2005.6.12
$ a. ^/ @$ G7 q* G/ e, q' h: }(defun c:line_link()  r/ v8 k" I$ m
  (setvar "CMDECHO" 0)
4 N7 A0 [2 ]& K0 F: R  (setq ss nil)
1 K) ^0 [' b1 @' U0 F  (prompt "\n请选择所有要连接的多段线、直线或圆弧: ")  
& H0 q' c4 L! b& x  (setq ss (ssget '((0 . "[~B . C-K . M-Z]*"))))
, e7 S6 Q1 F8 m6 u/ J: a5 f% D$ G  (command "undo" "begin")( i$ y; |# _; q1 A8 I! U
  + o; }1 z8 f/ W$ q; M# N1 _9 D: u% W
  (setq iss 0)
- C5 n- }8 T/ M/ C% O& t  (setq jss 0)  
/ z) T' E- q! G7 `: h2 K) ]$ q1 N( `  (while (< iss (sslength ss) )  q) ~; `% R/ n- `+ C7 ^% [: b
    (setq en (ssname ss iss))
2 F; q& J! w( Z    (setq ed (entget en))
( l+ j8 |; f+ u' ~0 Y9 I7 ~* N    (setq e_type (cdr (assoc '0 ed)))4 Q+ }6 d7 d# E$ d+ d* N
    (if (= (cdr (assoc '70 ed)) 1)
: i/ |: Q' [. ]4 S6 E4 u        (ssdel en ss)& J) D7 O, y/ l7 N2 s
        (setq iss (+ 1 iss))
8 l6 h# O, p. G: A( S  e5 S    )
4 D0 }8 \6 ^  d; {3 M" R" r+ r    ) b4 ~3 |6 ^- q4 [3 T3 S
    (if (/= e_type "LWPOLYLINE")7 ]8 S" r- u  ^6 D. Z- y# y
        (setq jss 999)]
5 o1 I) f  Q, [+ ~9 [    )   
) _6 A8 c8 m5 o+ n/ C2 V9 t! l9 \- S  )- I; P3 A3 Y; t" k# h
  
2 y9 n0 g% |! `8 q5 |% o8 V4 u. }0 X  (if (= jss 0)      4 r4 s$ [$ p8 m, w7 W! i* Y" m: ^, ~
      (command "pedit" "M" ss "" "J" "" "" )1 N; v& P7 x( D: S  S. e
      (command "pedit" "M" ss "" "y" "J" "" "" )0 Y, d5 G9 Y4 d4 g* g- Z
  )
" }* ]3 t+ c+ Y! ~; C& k8 _- h  (command "undo" "end")
. q4 K) i+ h0 \- [  (princ "\n 连接完成!")
; x1 L7 D" i& p/ p8 a# n8 i' P  (princ)
4 x) W+ C& I9 Z )
发表于 2006-7-9 18:48:48 | 显示全部楼层 来自: 中国新疆乌鲁木齐
还要这样吗?' b+ B9 h  s5 i0 S; J) A  q
不是有自带的连接功能嘛!7 }( ^" {: c" F5 c- T
修改/对象/多线段,按命令提示输入M后回车,Y回车,不就完了,还用得着编一个小程序吗?
发表于 2006-9-2 09:59:09 | 显示全部楼层 来自: 中国广东深圳

连接多段线程序(LISP)

在CAD里面输入命令PE,回车
9 o" T" S  i0 W' Q2 o: V# n) p' q选定的对象不是多段线+ I0 {2 p; K2 ]3 k/ k+ `* l  m  R. Q
是否将其转换为多段线? <Y>回车
( m$ g3 v! c2 n- n$ N输入选项 7 E3 J* b, `! W7 h8 A7 F
[闭合(C)/合并(J)/宽度(W)/编辑支持楼主点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)
* L4 v, `* p, p) f4 {7 l" V/ f: N/放弃(U)]: j回车$ p# A5 x# ~. @) o3 _9 L
选择对象: 可以框选(定对角点: 找到 4 个)也可以一个个选,选取好后,回车.
1 w! Z8 q3 b& o, m' J选择对象:6 h8 h; M/ I7 k' g( v
3 条线段已添加到多段线- S' k3 C$ c8 b% L0 G  D1 F+ C
经过这样的操作就可以将多段线连成一条了
发表于 2006-9-2 12:25:31 | 显示全部楼层 来自: 中国广东汕头
3楼的方法很好,简单好用,我试了,谢谢。
发表于 2006-9-14 10:54:35 | 显示全部楼层 来自: 中国上海

帮帮我好吗?

原帖由 bozh79 于 2006-7-9 18:48 发表5 g/ h* k7 y4 R) Y  G" K! F$ h
还要这样吗?
9 V) i$ L0 f  t+ X6 @- i9 N# `不是有自带的连接功能嘛!
% N4 z* G) z6 F: m修改/对象/多线段,按命令提示输入M后回车,Y回车,不就完了,还用得着编一个小程序吗?

$ `, ?9 @; z( a我划线时常常发现直线和曲线怎么老连不上不能变成一条多段线呀?
发表于 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 | 显示全部楼层 来自: 中国江苏无锡
什么用命令啊..用命令太烦了啊.... M: P# N7 U- v# ]/ }8 s) v
不过不知道这个程序好不好用....先试试用...$ y" s- o+ {* Z8 z

  C5 w5 f. \+ n3 ~2 v, I9 \; B我觉得目前比较好用的就是贱人工具箱的.连接功能...
" @( J4 R& w5 f9 h
- V+ I! Q0 C1 {% O, ?0 |& B& h我经常用...特别是旋转实体时,大家应该知道吧.都要求是闭合图形的..烦死了.., z' `( H6 z3 @) N: I3 u+ j0 P$ D$ D

6 j" x' Q% E, u  r) J不过.现在问题来了,有的时候,即使有限公司.0001的小间隙,都连接不起来..真讨厌啊..
9 Z4 h& @& t9 l5 g
+ a+ `4 C! M% V9 T( z: l: `如果能设置一下兼容值,比如兼容0.1以下的尺寸.全部耦合.那用起来不是更方便吗..
发表于 2010-2-2 12:13:34 | 显示全部楼层 来自: 中国台湾
Command: pe
0 O1 R" S9 w( w* bPEDIT Select polyline or [Multiple]: m$ n8 `# t" Z$ @# x* ~
Select objects: Specify opposite corner: 946 found
  C, j3 u3 M# T9 ^0 ^9 _Select objects:
3 ~- g1 P& \4 b( E7 @) z$ hConvert Lines and Arcs to polylines [Yes/No]? <Y>
1 z. K2 W* f) s4 fEnter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]: j
# E# H2 s) p& UJoin Type = Extend
$ l2 r) o& Y# N1 ]- x; s8 `  tEnter 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 )

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