明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1113|回复: 0

[求助][1228]给线段编号编程方法

[复制链接]
发表于 2005-12-28 08:46 | 显示全部楼层 |阅读模式

[求助][1228]给线段编号编程方法

在使用vertexs 函数可以将线段顶点编号产生
但若为若干的线段非多义线时该如何处理呢?
以及如何改写才可自动判断多义线顶点数量而自动产生编号呢?
  1. vertexs 函数
  2. (defun vertexs (ename / plist pp n)
  3. (setq obj (vlax-ename->vla-object ename))
  4. (setq plist (vlax-safearray->list
  5. (vlax-variant-value
  6. (vla-get-coordinates obj)
  7. ) )
  8. )
  9. (setq n 0)
  10. (repeat (/ (length plist) 2)
  11. (setq pp (append
  12. pp
  13. (list (list (nth n plist) (nth (1+ n) plist) ) ) )
  14. )
  15. (setq n (+ n 2))
  16. )
  17. pp
  18. )
  1. 多义线顶点编号产生
  2. (defun c:ts ( / polygon pt1 pt2 pt3 pt4 pt5 pt6 ptlist str1 str2 str3
  3. str4 str5 str6)
  4. (setq ptlist (vertexs (car (setq polygon (entsel "\n请点选物件:")))))
  5. (setq   pt1 (nth 0 ptlist)
  6.         pt2 (nth 1 ptlist)
  7.         pt3 (nth 2 ptlist)
  8.         pt4 (nth 3 ptlist)
  9.         pt5 (nth 4 ptlist)
  10.         pt6 (nth 5 ptlist)
  11. )
  12. (setq str1 (strcat "PT1:X=" (rtos (car pt1) 2 4) ", Y=" (rtos (cadr
  13. pt1) 2 4)))
  14. (setq str2 (strcat "PT2:X=" (rtos (car pt2) 2 4) ", Y=" (rtos (cadr
  15. pt2) 2 4)))
  16. (setq str3 (strcat "PT3:X=" (rtos (car pt3) 2 4) ", Y=" (rtos (cadr
  17. pt3) 2 4)))
  18. (setq str4 (strcat "PT4:X=" (rtos (car pt4) 2 4) ", Y=" (rtos (cadr
  19. pt4) 2 4)))
  20. (setq str5 (strcat "PT5:X=" (rtos (car pt5) 2 4) ", Y=" (rtos (cadr
  21. pt5) 2 4)))
  22. (setq str6 (strcat "PT6:X=" (rtos (car pt6) 2 4) ", Y=" (rtos (cadr
  23. pt6) 2 4)))
  24. (command "text" "j" "tl" pt1 "3" "0" str1)
  25. (command "text" "j" "tl" pt2 "3" "0" str2)
  26. (command "text" "j" "tl" pt3 "3" "0" str3)
  27. (command "text" "j" "tl" pt4 "3" "0" str4)
  28. (command "text" "j" "tl" pt5 "3" "0" str5)
  29. (command "text" "j" "tl" pt6 "3" "0" str6)
  30. (prin1))
  31. (defun vertexs (ename / plist pp n)
  32.   (setq obj (vlax-ename->vla-object ename))
  33.   (setq plist (vlax-safearray->list
  34.               (vlax-variant-value
  35.               (vla-get-coordinates obj)
  36.               ) )
  37.   )
  38.   (setq n 0)
  39.   (repeat (/ (length plist) 2)
  40.   (setq pp (append
  41.            pp
  42.            (list (list (nth n plist) (nth (1+ n) plist) ) ) )
  43.            )
  44.   (setq n (+ n 2))
  45.   )
  46.   pp
  47. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-14 19:19 , Processed in 0.341305 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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