明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5641|回复: 14

请高手们指点下。怎样取得多义线的各各端点坐标、若有弧的话求其弧的中心坐标。谢谢

[复制链接]
发表于 2011-9-2 19:21 | 显示全部楼层 |阅读模式
请高手们指点下。怎样取得多义线的各各端点坐标、若有弧的话求其弧的中心坐标。谢谢
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-9-2 23:24 | 显示全部楼层
本帖最后由 highflybird 于 2011-9-2 23:51 编辑

lisp文件., 顶点坐标 的组码为10

本帖子中包含更多资源

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

x

点评

谢谢高飞鸟,高山仰止  发表于 2012-7-31 10:18
回复 支持 1 反对 0

使用道具 举报

发表于 2018-5-23 16:41 | 显示全部楼层
highflybird 发表于 2011-9-2 23:23
很久以前写的了。

简单点的,有没有求得一根直线,或者多段折线的两个端点的坐标,注意只是两端点坐标,如何取得,谢谢
发表于 2018-12-10 17:51 来自手机 | 显示全部楼层
这个好,感谢分享源码。
发表于 2011-9-2 23:23 | 显示全部楼层
本帖最后由 highflybird 于 2011-9-2 23:24 编辑

很久以前写的了。
  1. ;;;******************************************************

  2. ;;;一个求多义线各段参数(如果是弧段则有半径弧长)的lisp程序
  3. ;;;编号  1:凸度,2:弦长或直段长,3:半径,4:弧长,5:圆心--
  4. ;;;加载程序,运行bulge,则显示上述参数-------------------
  5. (defun C:Bulge (/        sel        ent        lst        obj        vex        ifclose
  6.                 i        par        1stPt        EndPt        judge        tu        pt1
  7.                 pt2        dis        radius        h        h1        half-angle
  8.                 arc-length        pa        cen
  9.                )

  10.   (if (setq sel (ssget '((0 . "LWPOLYLINE"))))
  11.     (progn
  12.       (setq ent (ssname sel 0))
  13.       (setq lst (entget ent))
  14.       (setq obj (vlax-ename->vla-object ent))
  15.       (setq vex (cdr (assoc 90 lst)))
  16.       (setq ifclose (cdr (assoc 70 lst)))
  17.       (setq i        0
  18.             par        nil
  19.       )
  20.       (setq 1stPt (vlax-Curve-GetPointAtParam ent 0))
  21.       (setq EndPt (vlax-Curve-GetPointAtParam ent (1- vex)))
  22.       (if (or (equal 1stPt EndPt 1e-8) (= ifclose 0))
  23.         (setq vex (1- vex))
  24.       )
  25.       (repeat vex
  26.         (setq tu (vla-GetBulge obj i))
  27.         (setq pt1 (vlax-Curve-GetPointAtParam ent i))
  28.         (if (and (= i (1- vex)) judge)
  29.           (setq pt2 (vlax-Curve-GetPointAtParam ent 0))
  30.           (setq pt2 (vlax-Curve-GetPointAtParam ent (1+ i)))
  31.         )
  32.         (setq dis (distance pt1 pt2))
  33.         (if (/= tu 0)
  34.           (progn
  35.             (setq radius (/ (* (1+ (* tu tu)) dis 0.25) (abs tu)))
  36.             (setq h  (* dis (abs tu) 0.5)
  37.                   h1 (- radius h)
  38.             )
  39.             (setq half-angle (atan (/ dis 2) h1))
  40.             (setq arc-length (* 2 half-angle radius))
  41.             (setq cen (midp pt1 pt2))
  42.             (setq cen (polar cen
  43.                              (+        (angle pt1 pt2)
  44.                                 (if (or        nil
  45.                                         (and (> h1 0) (> tu 0))
  46.                                         (and (< h1 0) (< tu 0))
  47.                                     )
  48.                                   (* pi 0.5)
  49.                                   (* pi -0.5)
  50.                                 )
  51.                              )
  52.                              (abs h1)
  53.                       )
  54.             )
  55.             (setq pa (list tu dis radius arc-length cen))
  56.             (setq par (cons pa par))
  57.           )
  58.           (progn
  59.             (setq pa (list tu dis))
  60.             (setq par (cons pa par))
  61.           )
  62.         )
  63.         (setq i (1+ i))
  64.       )
  65.       (setq par (reverse par))
  66.       (princ "\n下面为此曲线的各段列表,3,4,5编号为弧段才有:")
  67.       (princ "\n1:凸度 2:弦长(或直线长) 3:半径 4:弧长 5:圆心")
  68.       (foreach n par
  69.         (princ "\n")
  70.         (princ n)
  71.       )
  72.       (princ)
  73.     )
  74.     (alert "你没有选中物体或者选择的不是多义线!")
  75.   )
  76.   (princ)
  77. )
  78. ;;;******************************************************
 楼主| 发表于 2011-9-3 08:25 | 显示全部楼层
谢谢你的出手。呵呵
发表于 2012-12-19 19:44 | 显示全部楼层
谢谢。。。。
发表于 2015-3-10 18:00 | 显示全部楼层
支持一下!学习了,谢谢版主大大
发表于 2015-3-11 10:39 | 显示全部楼层
学习了!哈哈!!!
发表于 2015-3-13 17:40 来自手机 | 显示全部楼层
学习了,啥。。。。
发表于 2015-9-2 12:27 | 显示全部楼层
很有用 非常感谢
发表于 2018-5-14 15:14 | 显示全部楼层
学习了学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 19:22 , Processed in 0.354969 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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