明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1395|回复: 3

[求助]怎样获得多段线中某段的斜率

[复制链接]
发表于 2009-2-8 17:55:00 | 显示全部楼层 |阅读模式

我现在的程序是选择一条直线,从而获得直线的端点,求出斜率,根据这个斜率在线上插入块.

现在想把这个在多段线上也可以用,其实就是只要知道我点下去的那点所在直线的两个端点就可以了,

那怎么获得多段线的端点列表呢

谢谢大家,我知道这里高手很多,希望赐教

发表于 2009-2-8 22:23:00 | 显示全部楼层
本帖最后由 作者 于 2009-2-8 22:42:44 编辑

论坛上有“获得拾取点临近的端点”的程序,我抄了一份。给个链接:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=73495

不敢乱贴。以下是我自己的,献丑。;输入图元名称,获得多义线的分段线段的端点和角度;输出一个表palist


(defun entptanglist( ename / entptlist i entlist n entpt entptlist listlen ptang)
  (setq entptlist '()
 i 0
 entlist (entget ename)
 n (length entlist)
 )
  (while (< i n)
    (if (= 10 (car(nth i entlist )))
      (progn
      (setq entpt (list(list (cadr(nth i entlist)) (caddr(nth i entlist )))))
 (setq entptlist (append  entpt entptlist))
      )
      )
    (setq i (+ i 1))
    )
 
(setq listlen  (- (length entptlist) 1)
      palist '()
      i 0)
(while (< i listlen)
  (setq ptang (list(angle(nth i entptlist) (nth (+ i 1) entptlist))))
  (setq pal (list(list (nth i entptlist) (nth (+ i 1) entptlist) ptang)))
 (setq palist (append palist pal ))
 
 (setq i (+ i 1))         
  )
(princ palist)
)

发表于 2009-2-9 09:36:00 | 显示全部楼层

换个思路如何?

(setq ee (entsel)
      pt (cadr ee)
     ppt (apply 'vlax-curve-getClosestPointTo ee)  ; 垂足
      sl (angle pt ppt)
)

发表于 2009-2-11 19:23:00 | 显示全部楼层
楼上高人,谢谢提供新思路。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-29 16:38 , Processed in 0.171201 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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