找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3098|回复: 4

多段线增加顶点的函数

[复制链接]
发表于 2013-5-5 17:57:41 | 显示全部楼层 |阅读模式

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

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

×
功    能:在指定索引位置处增加一个顶点

调用格式:(Ent:Polyline-AddVertexAt  <LWPOLYLINE实体名> <index索引值> <点> [bulge值] [起始宽度][结束宽度])

返 回 值:成功T, 否 NIL

说    明:
1、参数 [bulge值] [起始宽度][结束宽度]都为可选项,默认值都为0 ,后面的可选项若要设置必须前面的可选项也设置,但该可选项后面的若要默认值,可以省略。
          [bulge值]--实数,若加弧段给BULGE值。0退化为直线
          [起始宽度],[结束宽度]--实数值或者整数值。
2、程序要求对参数值判断类型,只对合法的参数类型执行。
[pcode=lisp,true](defun Ent:Polyline-AddVertexAt(LwpolylineObj index point bulge staW endW / i objname)
        (vl-load-com)
        (if (or(=(type LwpolylineObj)'Ename)(=(type LwpolylineObj)'vla-object))
                (progn
                        (if(=(type LwpolylineObj)'Ename)
                                (setq LwpolylineObj(vlax-ename->vla-object LwpolylineObj))
                                )
                        (setq i(/(length(vlax-get  LwpolylineObj 'Coordinates))2))
                        (setq objname(vla-get-objectname LwpolylineObj))
                        (if(not bulge)(setq bulge 0.0))
                        (if(not staW)(setq staW 0.0))
                        (if(not endW)(setq endW 0.0))
                        (if(and(= objname "AcDbPolyline")
                                        (= (type index)'INT)
                                        (= (type point)'list)
                                        (=(type(car point))'REAL)
                                        (=(type(cadr point))'REAL)
                                        (or(=(type bulge)'REAL)(=(type bulge)'INT))
                                        (or(=(type staW)'REAL)(=(type staW)'INT))
                                        (or(=(type endW)'REAL)(=(type endW)'INT))
                                        (>= index 0)(<= index i))
                                (progn
                                        (vla-AddVertex LwpolylineObj index (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 1)) (list (car point)(cadr point))))
                                        (vla-SetBulge LwpolylineObj index bulge)
                                        (vla-SetWidth LwpolylineObj index staW endW)
                                        t
                                        )
                                )
                        )
                )
        )[/pcode]

评分

参与人数 2D豆 +15 收起 理由
XDSoft + 10 很给力!经验;技术要点;资料分享奖!
ScmTools + 5 很给力!经验

查看全部评分

本帖被以下淘专辑推荐:

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

已领礼包: 1632个

财富等级: 堆金积玉

发表于 2013-5-6 21:16:55 | 显示全部楼层
支持!希望后续看到LZ的更多精彩贴
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

发表于 2013-5-30 05:57:17 | 显示全部楼层
多段线增加顶点,这个竟然也可以搞称函数。试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 717个

财富等级: 财运亨通

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 05:13 , Processed in 0.176899 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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