乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 144|回复: 9

如何找一般线段的各顶点(附图)

[复制链接]

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-1-18 19:47:00 | 显示全部楼层 |阅读模式
我要根据如图竖线与折线的交点(该交点可以通过拾取得到其坐标)分别往左右两边找折线的各顶点坐标,怎么搞?请帮帮忙!

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

8

主题

21

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
53
发表于 2004-1-18 19:52:00 | 显示全部楼层
选中须查找的线段,输入“list“查看就行了
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-1-18 20:50:00 | 显示全部楼层
要的是自动得出坐标啊,只要拾取那个交点后,就能得到左右两边的各个顶点,不用再在图上点了
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-1-19 08:46:00 | 显示全部楼层
你所谓的折线并不是折线,只是一些线段组成的。。。是否都这样?
还有,竖线是否都会在某个顶点上?
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-1-19 09:11:00 | 显示全部楼层
对,就是这样。是一些线段的组成并且竖线肯定在某个顶点上。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-1-19 09:35:00 | 显示全部楼层
  1. (defun c:GetPt( / ent pt1 pt2 ss i ptL1 ptL2 pts)
  2.   (setq ent (car (entsel "选择竖线...")))
  3.   (setq pt1 (cdr (assoc 10 (entget ent))))
  4.   (setq pt2 (cdr (assoc 11 (entget ent))))
  5.   (setq ss (ssget "f" (list pt1 pt2) '((0 . "line"))))
  6.   (ssdel ent ss)
  7.   (setq i 0)
  8.   (repeat (sslength ss)
  9.     (setq ent (ssname ss i))
  10.     (setq ptL1 (cdr (assoc 10 (entget ent))))
  11.     (setq ptL2 (cdr (assoc 11 (entget ent))))
  12.     (setq ptInter (inters pt1 pt2 ptL1 ptL2))
  13.     (if (equal ptL1 ptInter 0.00001)
  14.       (setq pts (append pts (list ptL2)))
  15.       (setq pts (append pts (list ptL1)))
  16.     )
  17.     (setq i (1+ i))
  18.   )
  19.   pts
  20. )
  21.   
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-1-19 12:41:00 | 显示全部楼层
为什么只找到两个点啊,左边一个,右边一个,都是离交点最近的那个点。我需要的是所有线段的顶点啊?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-1-19 14:11:00 | 显示全部楼层
  1. (defun c:GetPt( / ss pt x i pt1 pt2 ptLs ptRs ent)
  2.   (setq ss (ssget "x" '((0 . "line"))))
  3.   (setq pt (cdr (assoc 10 (entget (car (entsel "选择竖线..."))))))
  4.   (setq x (car pt))
  5.   (setq i 0)
  6.   (setq ptLs nil
  7.         ptRs nil)
  8.   (repeat (sslength ss)
  9.     (setq ent (ssname ss i))
  10.     (setq pt1 (cdr (assoc 10 (entget ent))))
  11.    
  12.     (cond
  13.       (( (car pt1) x) (if (not (member pt1 ptRs)) (setq ptRs (append ptRs (list pt1)))))
  14.     )
  15.     (setq pt2 (cdr (assoc 11 (entget ent))))
  16.     (cond
  17.       (( (car pt2) x) (if (not (member pt2 ptRs)) (setq ptRs (append ptRs (list pt2)))))
  18.     )
  19.    
  20.     (setq i (1+ i))
  21.   )
  22.   (list ptLs ptRs)
  23. )
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-1-19 17:33:00 | 显示全部楼层
ok了,谢谢
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2004-1-19 20:04:00 | 显示全部楼层

  1. ;|pts=按分界点列左右直线点表并排序--------------------------------无痕.2004.1
  2. 测试:
  3. Command: pts
  4. 选分界点:
  5. -> (((10628.5 9484.92 0.0) (14627.4 13324.7 0.0) (16925.9 10523.5 0.0) (19602.4 12632.2 0.0))
  6.     ((26214.7 9012.82 0.0) (27789.1 12474.9 0.0) (32354.8 9107.24 0.0) (37140.8 12065.7 0.0) (38085.5 10114.4 0.0)))
  7. |;
  8. [color=blue]
  9. (defun c:pts ( / pt ss ssv ptlst1 ptlst2)
  10.   (setq ptlst1 nil ptlst2 nil
  11.         pt  (getpoint "\n选分界点:")
  12.         ss  (ssget "x" '((0 . "LINE")))
  13.         ssv (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
  14.   (vlax-for obj ssv
  15.         (foreach n (list (vlax-get obj 'startpoint) (vlax-get obj 'endpoint))
  16.            (cond  ((and ( (car n) (car pt))(not (member n ptlst2))) (setq ptlst2 (cons n ptlst2)))
  17.            )
  18.   )   )
  19.   (list (vl-sort ptlst1 (setq sortlst '(lambda (x y) (< (car x)(car y))))) (vl-sort ptlst2 sortlst))
  20. )[/color]
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-8 09:27 , Processed in 1.248754 second(s), 77 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表