找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 756|回复: 5

[求助] [求助]:向先生请教:多义线编号--起始点如何随我意?

[复制链接]
发表于 2005-1-20 23:29:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
向先生请教:
      在对管线(多义线)用LISP程序进行自动编号和座标计算时,有时需要编号顺时针递增,有时又需要编号逆时针递增,在选取多义线时,我想通过选取点来确定编号方向,请问该如何实现?也就是说当选取左半部分时从左往右开始,选取右半部分时从右往左开始。
    此问题困扰本人良久,百思不得其解,实乃愚生!!!
    请先生指点,在此叩谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-1-21 00:38:44 | 显示全部楼层
需要使用函数:(vlax-curve-getPointAtParam curve-obj param)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-21 08:52:09 | 显示全部楼层
能否简单举例如何使用吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2005-1-21 22:05:57 | 显示全部楼层
贴个图吧
什么样的pl线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-1 12:03:41 | 显示全部楼层
1楼的问题确实我也遇到过,如对于随意绘制的一个封闭的pl线,一般提取它的转点坐标时是按照画线时的顺序提取的,现在要改变它的起始位置和方向,请各位有什么好办法。平时最土的办法是在某位置打断后再连接,可以解决起始点的位置,但方向没有解决。要不就只好重新画一次。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-1 16:21:31 | 显示全部楼层
先下载“xyp_lib.lsp”:http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
[php]
(load "xyp_lib.lsp")
;;;多义线序号及坐标
;;;多义线顶点序号及坐标。适用于 POLYLINE 及 LWPOLYLINE 图元
(defun c:test065 ()
  (cmdla0)
  (jzhz)                                ;加载汉字
  (setq tx1 (ukword 1 "1 2" "\n\t1-正向/2-反向" tx1))
  (while (setq s1 (entsel "\n\t选择对象<退出> : "))
    (if        (or (= (dxf 0 (entget (car s1))) "POLYLINE")
            (= (dxf 0 (entget (car s1))) "LWPOLYLINE")
        )
      (progn
        (setq eobj (vlax-ename->vla-object (car s1))
              i           -1
        )
        (if (= tx1 "1")
          ;;正向
          (progn
            (while
              (setq
                pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
              )
               (mkla "坐标编号" 1)
               (command        "text"
                        "j"
                        "mc"
                        (polar pt0 (* pi 0.75) (* sc 200))
                        (* sc 400)
                        "0"
                        (rtos (+ 1 i) 2 0)
               )
               (mkla "坐标" 3)
               (X_zb pt0)                ;标注坐标
            )
          )
          ;;反向
          (progn
            (while
              (setq
                pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
              )
               (princ)
            )
            (setq n i
                  i -1
            )
            (while
              (setq
                pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
              )
               (mkla "坐标编号" 1)
               (command        "text"
                        "j"
                        "mc"
                        (polar pt0 (* pi 0.75) (* sc 200))
                        (* sc 400)
                        "0"
                        (rtos n 2 0)
               )
               (setq n (1- n))
               (mkla "坐标" 3)
               (X_zb pt0)                ;标注坐标
            )
          )
        )
      )
    )
  )
  (cmdla1)
)
[/php]
测试:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 00:13 , Processed in 0.314672 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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