- (setq pt2 (vlax-curve-getClosestPointto [color="red"]exagsBaselineSet[/color] pt))
exagsBaselineSet的类型应为vla对象,而不是选择集
如果我理解这个问题
- (defun EXAGS_LineFunction (myGPSLineLayer myLineLayer ObjList)
- (if
- (setq pointSet (ssget "_X" (list (cons 0 "POINT")(cons 8 myGPSLineLayer)))) ; declare the set (pointSet)
- (progn
- (repeat (setq cntr (sslength exagsBaselineSet))
- (setq ObjList (cons (ssname exagsBaselineSet (setq cntr (1- cntr))) ObjList))
- )
- (setq ObjList (mapcar 'vlax-ename->vla-object ObjList))
- (setq cntr 0)
- (setvar "clayer" myLineLayer)
- (while (< cntr (sslength pointSet))
- (setq ename (ssname pointSet cntr))
- (setq enlist (entget ename))
- (setq pt (cdr (assoc 10 enlist)))
- (foreach Obj Objlist
- (setq pt2 (vlax-curve-getClosestPointto Obj pt))
- (command "_pline" "_none" pt "_none" pt2 "")
- )
- (setq cntr (+ cntr 1))
- )
- )
- )
- )
|