Hi,
you can use the vlax-curve-getPointAtParam function.
a quick and dirty example :
(defun c:test (/ ent start-parm end-param start-point end-point plst)
(if
(and
(setq ent (car (entsel)))
(setq ent (vlax-ename->vla-object ent))
(or (initget 5)
(setq start-param (getreal "\nNew start parameter: "))
)
(or (initget 5)
(setq end-param (getreal "\nNew end parameter: "))
)
(< start-param end-param)
(setq start-point (vlax-curve-getPointatParam ent start-param))
(setq end-point (vlax-curve-getPointatParam ent end-param))
(setq plst (2d-coord->pt-lst (vlax-get ent 'Coordinates)))
)
(progn
(repeat (fix (- (vlax-curve-getendParam ent) (fix end-param)))
(setq plst (reverse (cdr (reverse plst))))
(vlax-put ent 'Coordinates (apply 'append plst))
)
(vlax-put ent
'Coordinates
(apply 'append
(setq plst
(append plst
(list
((lambda (p)
(list (car p) (cadr p))
)
(trans end-point 0 (vlax-get ent 'Normal))
)
)
)
)
)
)
(repeat (1+ (fix start-param))
(setq plst (cdr plst))
(vlax-put ent 'Coordinates (apply 'append plst))
T
)
(vlax-put ent
'Coordinates
(apply 'append
(cons ((lambda (p)
(list (car p) (cadr p))
)
(trans start-point 0 (vlax-get ent 'Normal))
)
plst
)
)
)
)
)
(princ)
)