找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 556|回复: 7

[已解决] xdrx-polyline-nearindex函数的用法

[复制链接]

已领礼包: 201个

财富等级: 日进斗金

发表于 2020-6-20 15:56:35 | 显示全部楼层 |阅读模式
悬赏20D豆已解决
(xdrx-polyline-nearindex (car(entsel)) 2) 选取多段线,
这样用法不对吗?返回nil

最佳答案

查看完整内容

命令: (xdrx-getpropertyvalue (entlast)) ------ Geom Entity Method ------ : Edit Functions: ├───setCurveList Query Functions: ├───getCurveList ├───getCurveList ├───Vertices ├───Bulges ├───LineSegAt ├───ArcSegAt ├───PointAt ├───BulgeAt ├───isOnlyLines ...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2020-6-20 15:56:36 | 显示全部楼层
命令: (xdrx-getpropertyvalue (entlast))


------       Geom Entity Method       ------


<kCompositeCrv3d>:

   Edit Functions:
        ├───setCurveList

   Query Functions:
        ├───getCurveList
        ├───getCurveList
        ├───Vertices
        ├───Bulges
        ├───LineSegAt
        ├───ArcSegAt
        ├───PointAt
        ├───BulgeAt
        ├───isOnlyLines
        ├───isOnlyArcs
        ├───hasBulges
        ├───OnSegAt
        ├───ToBox
        ├───NumVerts
        ├───globalToLocalParam
        ├───localToGlobalParam


<kCurve3d>:

   Bounding Box Functions:
        ├───boundBlock
        ├───orthoBoundBlock

   Closest Point Functions:
        ├───closestPointTo
        ├───projClosestPointTo

   Degeneracy Functions:
        ├───isDegenerate

   Distance Functions:
        ├───distanceTo

   Edit Functions:
        ├───setInterval

   Evaluation Functions:
        ├───evalPoint

   Geometric Inquiry Functions:
        ├───hasEndPoint
        ├───hasStartPoint
        ├───isClosed
        ├───isCoplannarWith
        ├───isLinear
        ├───isPeriodic
        ├───isPlannar

   Length Functions:
        ├───area
        ├───areaOf
        ├───length
        ├───paramAtLength

        ├───porintAtLength

   Parameterization Functions:
        ├───paramOf
        ├───reverseParam

   Point Containment Functions:
        ├───isOn
        ├───orthoProject
        ├───project

   Query Functions:
        ├───startParam
        ├───endParam
        ├───firstdeiv
        ├───firstderiv-
        ├───secondDeriv
        ├───secondDeriv-
        ├───getClosestPointTo
        ├───getInterval
        ├───getLocalClosestPoints
        ├───getNormalPoint
        ├───getProjClosestPointTo
        ├───getSamplePoints
        ├───getSplitCurves
        ├───getTrimmedOffset

   Subdivide Functions:
        ├───explode


<kEntity3d>:

   Equality Checking Functions:
        ├───isEqualTo

   Point Containment Functions:
        ├───isOn

   Type Identification Functions:
        ├───isKindOf
        ├───type


------       DB Entity Method       ------

Class AcDb2dPolyline:

    ├─Closed
    ├─Thickness
    ├─Vertices
    ├─FeaturePoints
    ├─Elevation
    ├─DefaultEndWidth
    ├─DefaultStartWidth
    ├─isLinetypeGenerationOn
    ├─Normal
    ├─PolyType

    ├─AllInnerAngles
    ├─AllOuterAngles
    ├─Angle
    ├─AngularLineVector
    ├─AllSegs
    ├─SegAt
    ├─ArcSegs
    ├─ArcSegAt
    ├─ArcSegIndex
    ├─LineSegIndex
    ├─BulgeAt
    ├─Bulges
    ├─Elevation

    ├─ConstantWidth
    ├─Get
    ├─LineSegAt
    ├─Length
    ├─Lengths
    ├─HasBulges
    ├─HasPlinegen
    ├─HasWidth
    ├─InAngle
    ├─IsSelfCrossing
    ├─IsInnerAngle
    ├─IsOuterAngle
    ├─IsOnlyLines

    ├─NearIndex
    ├─Normal
    ├─NumVerts
    ├─OnSegAt(Point or (INT Point))    ├─PointAt
    ├─PrevNextIndex
    ├─-Index+
    ├─SelfIntPoints
    ├─SelfIntParams
    ├─Thickness
    ├─Vertices
    ├─FeaturePoints
    ├─WidthsAt
    ├─StartWidth
    ├─EndWidth
    ├─OutLine (NULL or Index or (Index and (Int or Real))

Class AcDbCurve:

    ├─Area
    ├─Centroid
    ├─DistanceTo
    ├─Divide
    ├─EndParam
    ├─EndPoint
    ├─GetClosestPointTo
    ├─GetFirstDeriv
    ├─GetFirstDeriv-
    ├─GetSecondDeriv
    ├─GetSecondDeriv-
    ├─GetPointAtParam
    ├─GetPointAtDist
    ├─GetPointsAtDist
    ├─GetPointsAtDists
    ├─GetParamAtPoint
    ├─GetParamAtDist
    ├─GetDistAtPoint
    ├─GetDistAtParam
    ├─GetSamplePoints
    ├─IsClosed
    ├─IsOn
    ├─IsPeriodic
    ├─MidPoint
    ├─StartPoint
    ├─StartParam
    ├─Length


Class AcDbEntity:

    ├─9PT
    ├─Centroid
    ├─GeomExtents
    ├─BoundingBox
    ├─Elevation
    ├─Color (None or T[real color])
    ├─ColorIndex (None or T)
    ├─ECS
    ├─IsMemoryEntity
    ├─Layer (None or T or NIL)
    ├─Layout
    ├─Linetype (None or T or NIL)
    ├─LinetypeScale
    ├─LineWeight
    ├─Project(Plane Normal T)
    ├─OrthoProject(Plane  T)
    ├─Plane
    ├─PlotStyleName
    ├─StretchPoint
    ├─Transparency
    ├─Visibility

Class AcDbObject:
    ├─ClassName
    ├─ExtensionDictionary
    ├─FieldDictionary
    ├─IsA
    ├─IsAProxy
    ├─IsErased
    ├─IsReallyClosing
    ├─Handle
    ├─HasFields
    ├─HasPersistentReactor
    ├─MyParent
    ├─ObjectID
    ├─Owner
    ├─xData

评分

参与人数 1D豆 +5 收起 理由
dyjwyqz5221 + 5 技术引导讨论和指点奖!

查看全部评分

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

发表于 2020-6-20 16:42:52 | 显示全部楼层
这个确实有问题,我试了得用下面的才能得到正确的子段两端点
  1. (setq inx   (XD::Polyline:OnSegAt ePipe selpt)
  2.         inx1  (XD::PolyLine:-Index+ ePipe inx)
  3.         pps   (xdrx_getpropertyvalue ePipe "PointAt" inx)
  4.         ppe   (xdrx_getpropertyvalue ePipe "PointAt" (last inx1))
  5. )

点评

还一种 命令: (xd::list:snakepair (xdrx-getpropertyvalue (entlast) "vertices")) (((4608.95 1180.75 0.0) (5540.47 1673.45 0.0)) ((5540.47 1673.45 0.0) (5339.56 2786.58 0.0)) ((5339.56 2786.58 0.0) (40  详情 回复 发表于 2020-6-20 18:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2020-6-20 18:17:21 | 显示全部楼层
参数是 点
命令: (xdrx-polyline-nearindex poly (getpoint))
1
命令: (xdrx-getpropertyvalue poly "nearindex" (getpoint))
1
命令: (xdrx-getpropertyvalue poly "-index+" 2)
(1 3)

得到子段两点很多方法
(xdrx-getpropertyvalue (entlast) "divide" 1 t)
(((4608.95 1180.75 0.0) (5540.47 1673.45 0.0)) ((5540.47 1673.45 0.0) (5339.56 2786.58 0.0)) ((5339.56 2786.58 0.0) (4024.46 3407.02 0.0)))


命令: (xdrx-entity-getproperty (xdrx-getpropertyvalue (entlast) "allsegs") "get")
((((4608.95 1180.75 0.0) (5540.47 1673.45 0.0))) (((5540.47 1673.45 0.0) (5339.56 2786.58 0.0))) (((5339.56 2786.58 0.0) (4024.46 3407.02 0.0))))

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-6-20 18:32:03 | 显示全部楼层
函数功能是求 距离一个测试点 最近的 顶点索引,所以参数是点

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-6-20 18:34:40 | 显示全部楼层
liuyj 发表于 2020-6-20 16:42
这个确实有问题,我试了得用下面的才能得到正确的子段两端点

还一种
命令: (xd::list:snakepair (xdrx-getpropertyvalue (entlast) "vertices"))
(((4608.95 1180.75 0.0) (5540.47 1673.45 0.0)) ((5540.47 1673.45 0.0) (5339.56 2786.58 0.0)) ((5339.56 2786.58 0.0) (4024.46 3407.02 0.0)))

评分

参与人数 1D豆 +5 收起 理由
dyjwyqz5221 + 5 技术引导讨论和指点奖!

查看全部评分

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-6-20 18:36:51 | 显示全部楼层
尽可能的去用 xdrx-getpropertyvalue 吧,包括了N多功能了,替代了所有的对象的具体的函数
比如xdrx-polyline-xxxxx,  xdrx-line-xxxxx, xdrx-arc-xxxxx, xdrx-text-xxxx.......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2020-6-20 19:53:13 | 显示全部楼层
liuyj 发表于 2020-6-20 16:42
这个确实有问题,我试了得用下面的才能得到正确的子段两端点

获取子段两端点
搜狗截图20200620195224.jpg
  1. (defun c:tt ()
  2.   (xdrx-begin)
  3.   (if (and (setq e (xdrx-entsel "\n拾取子段<退出>:" '((0 . "*polyline"))))
  4.            (setq p (cadr e)
  5.                  e (car e)
  6.            )
  7.            (setq seg (xdrx-getpropertyvalue e "segat" (trans p 1 0)))
  8.       )
  9.     (progn (mapcar '(lambda (x) (xdrx-grdraw 2 -1 x 3 4))
  10.                    (xdrx-getpropertyvalue seg "get")
  11.            )
  12.     )
  13.   )
  14.   (xdrx-end)
  15.   (princ)
  16. )


评分

参与人数 1D豆 +5 收起 理由
dyjwyqz5221 + 5 技术引导讨论和指点奖!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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