找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: laoxie_1983

[求助] [求助]:请大家帮我修改以下这个程序

[复制链接]
发表于 2005-11-10 15:35:35 | 显示全部楼层
最初由 laoxie_1983 发布
[B]谢谢!斑竹!
  我运行了.不能满足我的要求点号还是乱的.
 我想到一个方法,可以在图形里定一点.然后分别与每个端点计算角度,用最接近135度的那个点作为起始点.你看可以吗?vlx的文件是怎么编辑的呀??.. [/B]

发个图上来(包括测试的结果)。
  1. [FONT=courier new]
  2. (load "xyp_lib")
  3. ;|加载通用函数(可在签名栏直接下载)
  4. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  5. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  6. ★1·在acad.lsp中增加(load"xyp_lib")
  7. ■2·在每个程序内增加(load"xyp_lib")
  8. ■3·在command下,输入(load"xyp_lib")
  9. ■4·在菜单.mnl中增加(load"xyp_lib")
  10. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  11. [COLOR=red] ★通用函数下载地址:[/COLOR]
  12. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  13. |;

  14. ;;;界址点号
  15. (defun c:jzdh ()
  16.   (CMDLASC0)
  17.   (setvar "osmode" 0)
  18.   (setq        ss  (ssget '((0 . "*POLYLINE")))
  19.         ttx ""
  20.         l   0
  21.         i   -1
  22.   )
  23.   (mkla "线长标注" 4)
  24.   (while (setq s1 (ssname ss (setq i (1+ i))))
  25.     (setq ptlst-a (xyp-get-Vertexes s1 t)
  26.           ptlst-b ptlst-a
  27.           pt0          (osnap (cadr (entsel "\n桩号1位置 : ")) "int")
  28.     )
  29.     (jiezhihao)
  30.     (mkla "界址点" 1)
  31.     (foreach n ptlst-a (command "circle" n 1))
  32.     (mkla "界址长" 4)
  33.     (while (setq pt1 (car ptlst-a))
  34.       (if (setq ptlst-a (cdr ptlst-a))
  35.         (progn
  36.           (setq        pt2   (car ptlst-a)
  37.                 leng  (distance pt1 pt2)
  38.                 tx    (rtos leng 2 2)
  39.                 ang   (rad2ang (angle pt1 pt2))
  40.                 pt-tx (xyp-get-RightPoint pt1 pt2 100)
  41.                 ttx   (strcat ttx "+" tx)
  42.                 l     (+ l leng)
  43.           )
  44.           (command "text" "j" "BC" pt-tx (* sc 300) ang tx)
  45.         )
  46.       )
  47.     )
  48.   )
  49.   (CMDLA1)
  50. )
  51. (defun jiezhihao ()
  52.   (mkla "界址号" 2)
  53.   (setq j 0)
  54.   (while (not (equal (car ptlst-b) pt0))
  55.     (setq ptlst-b (append (cdr ptlst-b) (list (car ptlst-b))))
  56.   )
  57.   (foreach ptx ptlst-b
  58.     (progn
  59.       (setq jh (strcat "J" (rtos (setq j (1+ j)) 2 0)))
  60.       (command "text"
  61.                "j"
  62.                "MC"
  63.                (polar ptx (* pi 0.75) (* sc 500))
  64.                (* sc 300)
  65.                0
  66.                jh
  67.       )
  68.     )
  69.   )
  70. )
  71. (pxyp"jzdh  (界址点号)")[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 19:03 , Processed in 0.154299 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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