找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1437|回复: 3

[教学]:XDRX_API函数应用示例一。

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-3-17 03:00:38 | 显示全部楼层 |阅读模式

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

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

×
  1. ;|xdrx_getpointatdist和xdrx_curve_getpointatdist示例
  2. 绘制漏空围墙
  3. 说明:按国标围墙为间隔1cm的圆点
  4. |;
  5. (defun c:wq (/ e ptl)
  6.   (xdrx_begin)
  7.   (xdrx_ucson)
  8.   ;;选择现有线,LINE,LWPOLYLINE,SPLINE,ARC,对拟合后的多义线将出错
  9.   (setq e (car (xdrx_entsel "\n选择线:" '(0 . "*line,arc"))))
  10.   ;;获得曲线上间隔为1cm的点表,bl为常数即出图比例
  11.   (setq ptl (xdrx_getpointatdist e (* 10 bl)))
  12.   ;;设置标志,以获得程序运行后生成的圆点
  13.   (c:xdrx_setmark)
  14.   (command ".donut" "0" bl)
  15.   (apply 'command ptl)
  16.   (command "")
  17.   ;;将圆点和线生成匿名组
  18.   (xdrx_group_make "*" (c:xdrx_getss) e)
  19.   (xdrx_ucsoff)
  20.   (xdrx_end)
  21.   (princ)
  22. )
  23. ;|xdrx_getpointatdist

  24. 功    能:返回AcDbCurve曲线上(line,polyline,lwpolyline,arc,circle,ellipse,spline)
  25.           距离参考点指定距离的点。或者直接返回指定距离间隔的所有点(从开始点到终止点)

  26. 调用格式:(xdrx_getpointatdist <AcDbCurve实体名> [参考点] <距离间隔或者等分数>)

  27. 返 回 值:若[参考点]存在,则返回在曲线上到参考点指定距离的点,距离可正负。
  28.           若不给[参考点],则返回指定间隔距离的所有点表。

  29. 说    明:若参数<距离间隔或者等分数>,输入实数或者大于50的整数或者小于0的整数,均作为距离处理。
  30.           对于0和50之间的整数,作为等分段处理(内部数据库默认等分数最大为50)
  31. )

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

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2002-3-17 09:22:50 | 显示全部楼层
用xdrx_curve_getpointatdist·函数可以适用curve类曲线。
  1. (defun c:wq (/ tf e ptlist ptl n)
  2.   (xdrx_begin)
  3.   (xdrx_ucson)
  4.   (setq tf T)
  5.   ;;tf控制循环选取
  6.   (while tf
  7.     ;;选择现有线,LWPOLYLINE,SPLINE,ARC,包括拟合后的多义线
  8.     (if        (setq e (car (xdrx_entsel "\n选择线:" '(0 . "*line,arc"))))
  9.       (progn
  10.         (setq ptlist '()
  11.               n        1
  12.         )
  13.         ;;获得曲线上间隔为1cm的点表,bl为常数即出图比例
  14.         (while
  15.           (xdrx_ison (setq ptl (xdrx_curve_getpointatdist e (* 10 n bl)))
  16.                      e
  17.           )
  18.            (setq ptlist (cons ptl ptlist))
  19.            (setq n (1+ n))
  20.         )
  21.         ;;设置标志,以获得程序运行后生成的圆点
  22.         (c:xdrx_setmark)
  23.         (command ".donut" "0" bl)
  24.         (apply 'command ptlist)
  25.         (command "")
  26.         ;;将圆点和线生成匿名组,还可以用xdrx_block_make作成匿名块
  27.         (xdrx_group_make "*" (c:xdrx_getss) e)
  28.       )
  29.       (setq tf nil)
  30.     )
  31.   )
  32.   (xdrx_ucsoff)
  33.   (xdrx_end)
  34.   (princ)
  35. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-3-25 13:16:48 | 显示全部楼层
如果只是打点,用divide就可以,你应该举个更复杂的例子,如坡度线,沿线阵列物体。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 22:25 , Processed in 0.368783 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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