你好
在我的另一篇文章之后:沿具有特定长度间隔的多段线分布顶点
i'v决定发布一个新线程,因为已经发布了点和顶点。所以这个标题就不那么描述性了。
考虑沿多段线分布VET以查找Y值是一个非常糟糕的主意,因为发布的多段线可以有自己的顶点。
因此,我想将点作为Y传感器,而不是顶点。点的分布方式应该与顶点的分布方式完全相同,但我希望得到点,而不是顶点。
我收集了一个代码,我试图自己编辑它,但没有成功。
希望有大师能帮我
谢谢
谢伊
- (defun c:demo2 (/ getPoly ptst pten wall front back exist in seglen pt ppt pc
- pr ptList)
- (vl-load-com)
- (defun getPoly (ent msg);
- (if (setq ent (car (entsel msg)))
- (if (eq (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
- ent
- ) ;_if
- (alert "\nThe selected object is not a polyline")
- ) ;_if
- )
- (if (and
- (setq ptst (getpoint "\nStart point of path: "))
- (setq pten (getpoint ptst "\nEndpoint of path: "))
- )
- (progn
- (setq wall (getPoly wall "\nSelect Wall eleveation line"))
- (redraw wall 3)
- (setq front (getPoly front "\nSelect Front eleveation line"))
- (redraw front 3)
- (setq back (getPoly back "\nSelect Back eleveation line"))
- (redraw back 3)
- (setq exist (getPoly exist "\nSelect Exist eleveation line"))
- (mapcar '(lambda (e) (redraw e 4)) (list wall front back))
- ;;; testing purposes only ;;;
- ;;; insert your interval "thingy" here instead ;;;
- (Setq in 6.25
- seglen in
- ptList nil
- )
- ;;; ;;;
- (setq spc (vla-get-modelspace
- (vla-get-activedocument (vlax-get-acad-object))
- (while (Setq pt (vlax-curve-getPointAtDist wall seglen))
- (setq ppt (vlax-curve-getparamatpoint wall pt))
- (vlax-invoke
- (vlax-ename->vla-object wall)
- (vla-addpoint; add point
- spc
- (vlax-3d-point
- (nth n lst);gets coordinates from list
- (nth (setq n (1+ n)) lst)
- )
- )
- (setq n (1+ n))
- (1+ (fix ppt))
- (progn
- (setq ptList (cons (setq p (list (car pt) (Cadr pt))) ptList))
- p
- )
- )
- (setq seglen (+ seglen in))
- )
- (foreach pline_ (list front back exist)
- (foreach pt ptList
- (setq
- pc (vlax-curve-getClosestPointToProjection pline_ pt '(0 1 0))
- )
- (setq pr (vlax-curve-getparamatpoint pline_ pc))
- (vlax-invoke
- (vlax-ename->vla-object pline_)
- 'AddVertex
- (1+ (fix pr))
- (list (car pc) (Cadr pc))
- )
- )
- )
- (foreach p ptList
- (command "xline" "V" "_non" p "")
- )
- )
- )
- (princ)
- )
|