找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1799|回复: 2

[教学] XDGE几何库应用(24)---曲线打断

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2014-10-3 16:33:38 | 显示全部楼层 |阅读模式

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

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

×
研究了几天几何库,试着写个教学,望高手指正

用XDGE几何库实现曲线打断(主要功能)的代码

一、单点打断
xdtb_singlebrk.gif

  1. (defun c:tt1()
  2.     (if (and (setq e (xdrx_entsel "\n拾取要单点打断的曲线<退出>:" '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))))
  3.              (setq ge1 (xdge::constructor (car e)))
  4.              (setq ge2 (xdge::copy ge1))
  5.              (setq intval (xdge::getpropertyvalue ge1 "getInterval"))
  6.         )
  7.       (progn
  8.           (setq intval (car intval)
  9.                 bounds (xdge::getpropertyvalue intval "getBounds")
  10.                 lower (car bounds)
  11.                 upper (cadr bounds)
  12.                 param (xdge::getpropertyvalue ge1 "paramOf" (cadr e))
  13.                 intval1 (xdge::constructor "AcGeInterval" lower param)
  14.                 intval2 (xdge::constructor "AcGeInterval" param upper)
  15.           )
  16.           (if (xdge::setpropertyvalue ge1 "setInterval" intval1);;设置曲线1的起始、结束参数
  17.              (xdge::entity:make ge1)
  18.           )
  19.           (if (xdge::setpropertyvalue ge2 "setInterval" intval2);;设置曲线2的起始、结束参数
  20.              (xdge::entity:make ge2)
  21.           )
  22.           (xdrx_entity_delete (car e))
  23.           (xdge::free)
  24.       )
  25.     )
  26.     (princ)
  27. )

一、两点打断
xdtb_2pbrk.gif

  1. (defun c:tt2()
  2.     (if (and (setq e (xdrx_entsel "\n拾取要两点打断的曲线<退出>:" '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))))
  3.              (setq p1 (getpoint "\n第一点<退出>:"))
  4.              (setq p2 (getpoint p1 "\n第二点<退出>:"))
  5.              (setq ge1 (xdge::constructor (car e)))
  6.              (setq ge2 (xdge::copy ge1)) ;;复制一个
  7.              (setq intval (xdge::getpropertyvalue ge1 "getInterval"))
  8.              (setq param1 (xdge::getpropertyvalue ge1 "paramOf" p1))
  9.              (setq param2 (xdge::getpropertyvalue ge1 "paramOf" p2))
  10.         )
  11.       (progn
  12.           (setq pa1 (min param1 param2)
  13.                 pa2 (max param1 param2)
  14.                 intval (car intval)
  15.                 bounds (xdge::getpropertyvalue intval "getBounds")
  16.                 lower (car bounds)
  17.                 upper (cadr bounds)
  18.                 intval1 (xdge::constructor "AcGeInterval" lower pa1)
  19.                 intval2 (xdge::constructor "AcGeInterval" pa2 upper)
  20.           )
  21.           (if (and (xdge::setpropertyvalue ge1 "setInterval" intval1);;设置曲线1的起始、结束参数
  22.                    (> (xdge::getpropertyvalue ge1 "Length") 0) ;;长度大于0生成
  23.               )
  24.              (xdge::entity:make ge1)
  25.           )
  26.           (if (and (xdge::setpropertyvalue ge2 "setInterval" intval2);;设置曲线2的起始、结束参数
  27.                    (> (xdge::getpropertyvalue ge2 "Length") 0);;长度大于0生成
  28.               )
  29.              (xdge::entity:make ge2)
  30.           )
  31.           (xdrx_entity_delete (car e))
  32.           (xdge::free)
  33.       )
  34.     )
  35.     (princ)
  36. )      

两个程序的主要原理都是建立曲线几何模型,然后拷贝复制一个,然后通过设置两个GE曲线的起始、终止参数来实现打断的,主要的几何库打断函数用的是 (xdge::setpropertyvalue ge "setInterval" intval)

本帖被以下淘专辑推荐:

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

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 79个

财富等级: 招财进宝

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:59 , Processed in 0.354742 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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