找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 657|回复: 5

[编程申请]:怎样找出多线段中带圆弧的多线段

[复制链接]
发表于 2004-3-15 18:17:41 | 显示全部楼层 |阅读模式

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

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

×
多线段中可能只有折线,也会有圆弧,怎样能实现自动找出其中带圆弧的多线段,同时不改变他们的图层,颜色等本来的信息
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-3-16 03:45:16 | 显示全部楼层
(defun c:test ( / bulge)
  (foreach i (entget (car (entsel)))
    (if (= (car i) 42)
      (if (/= (cdr i) 0)
        (setq bulge T)
      )
    )
  )
  bulge
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-25 09:31:18 | 显示全部楼层

Re: [编程申请]:怎样找出多线段中带圆弧的多线段

最初由 giswater 发布
[B]多线段中可能只有折线,也会有圆弧,怎样能实现自动找出其中带圆弧的多线段,同时不改变他们的图层,颜色等本来的信息 [/B]


好象没有办法实现!是不是程序有错,谢谢,谁帮帮忙!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2004-3-25 09:52:46 | 显示全部楼层

Re: [编程申请]:怎样找出多线段中带圆弧的多线段

最初由 giswater 发布
[B]多线段中可能只有折线,也会有圆弧,怎样能实现自动找出其中带圆弧的多线段,同时不改变他们的图层,颜色等本来的信息 [/B]


下面的函数在晓东工具箱环境下,参数是POLYLINE实体名和POLYLINE上的一个测试点和是否绘制标记CLR,NIL或者T。

该函数能把POLYLINE上,测试点下面的线或者弧线得到他们的起始,结束点等参数,如果函数参数CLR为T,直接画出测试点下面的线或者弧线。

你可以参考下。


  1. ;|
  2.    用法:($XDLSP_PolyLine_getSegAt <多义线实体名> <测试点> <绘制标记>)
  3.    获得一个*POLYLINE线上指定一点处的“段”的信息。
  4.    对于直线段返回:(顶点索引 "kLine" 起点 终点)
  5.    对于弧线段返回:(顶点索引 "kArc" 起点 凸度 终点)
  6.    所有返回点在UCS下。
  7. |;
  8. (defun $XDLSP_PolyLine_getSegAt (e pt clr / cNa tf i nNums eTyl eSegData el
  9.                                    tf1 tf2
  10.                                 )
  11.   (setq cNa (car (xdrx_Object_ClassName e)))
  12.   (if (wcmatch cNa "*POLYLINE")
  13.     (progn
  14.       (setq tf t)
  15.       (if (setq tf (= cNa "POLYLINE"))
  16.         (setq tf (xdrx_polyline_ConvertFrom e)
  17.               tf2 tf
  18.         )
  19.         (setq tf t)
  20.       )
  21.       (if tf
  22.         (progn
  23.           (setq nNums (xdrx_polyline_numVerts e)
  24.                 i -1
  25.           )
  26.           (setq tf1 t)
  27.           (while (and
  28.                    tf1
  29.                    (< i nNums)
  30.                  )
  31.             (if (xdrx_polyline_onSegAt e (setq i (1+ i))
  32.                                        pt
  33.                 )
  34.               (progn
  35.                 (setq eTyl (xdrx_polyline_segtype e i)
  36.                       eSegData (cond
  37.                                  ((= "kLine" eTyl)
  38.                                    (setq data1
  39.                                          (xdrx_polyline_getLineSegAt e i)
  40.                                          data2
  41.                                          (xdrx_polyline_getWidthsAt e i)
  42.                                    )
  43.                                    (if (/= clr 0)
  44.                                      (progn
  45.                                        (apply
  46.                                          'command
  47.                                          (cons ".pline" data1)
  48.                                        )
  49.                                        (command "")
  50.                                        (if (= "POLYLINE" (car (xdrx_object_classname (entlast))))
  51.                                           (xdrx_polyline_ConvertFrom (entlast))
  52.                                        )
  53.                                        (xdrx_polyline_setConstantWidth
  54.                                                                        (entlast)
  55.                                                                        (/
  56.                                                                           (getvar "viewsize") 64
  57.                                                                        )
  58.                                        )
  59.                                        (xdrx_entity_setcolor
  60.                                                              (entlast) 1
  61.                                        )
  62.                                      )
  63.                                    )
  64.                                    (append
  65.                                      data1
  66.                                      data2
  67.                                    )
  68.                                  )
  69.                                  ((= "kArc") ; (xdrx_polyline_getArcSegAt e
  70.                                        ; i)
  71.                                    (list (xdrx_polyline_getpointat e i)
  72.                                          (xdrx_polyline_getBulgeAt e i)
  73.                                          (xdrx_polyline_getpointat e
  74.                                                                    (1+ i)
  75.                                          )
  76.                                    )
  77.                                  )
  78.                                )
  79.                       el (cons i (cons eTyl eSegData))
  80.                       tf1 nil
  81.                 )
  82.               )
  83.             )
  84.           )
  85.         )
  86.       )
  87.       (if tf2
  88.         (xdrx_polyline->2dpolyline e)
  89.       )
  90.     )
  91.   )
  92.   el
  93. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-25 18:40:18 | 显示全部楼层

Re: Re: [编程申请]:怎样找出多线段中带圆弧的多线段

最初由 giswater 发布
[B]好象没有办法实现!是不是程序有错,... [/B]


我在2000i 和2004都没有问题呀!?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-26 08:29:12 | 显示全部楼层

Re: Re: [编程申请]:怎样找出多线段中带圆弧的多线段

最初由 XDSoft 发布
[B]

下面的函数在晓东工具箱环境下,参数... [/B]


我在试试,我是在2002中试的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 01:08 , Processed in 0.302467 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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