
(defun c:SPTPL( / ss ssLen i ent obj bisclose param pntcount
count subparam rblist inp segnpt subcount subrblist vex pl-obj isDelOrgEnt segcount)

	(vl-load-com)
	
	(setq ss (ssget ":L" '((0 . "spline"))))

	(if ss
		(progn
			(initget 2 "Yes No")
			(setq isDelOrgEnt (= (getkword "\ñXvC폜܂H [͂(Y)/(N)]:") "Yes"))

			(initget 7)
			(setq segcount (getint "\nZOgI(0ȊO):"))

			(if (and ss segcount)
				(progn 
					(setq ssLen (sslength ss))
					
					(setq i 0)
					(repeat ssLen
						(setq ent (ssname ss i))
						(setq entinfo (entget ent))
						(setq orgEntLayerName (assoc 8 entinfo))
						(setq i (1+ i))
						(setq obj (vlax-ename->vla-object ent))
						(setq bisclose (vlax-curve-isclosed ent))
						(setq param (vlax-curve-getEndParam obj))
						(setq pntcount (vla-get-NumberOfControlPoints obj))
						(setq count (1+ segcount))
						(setq subparam (/ param segcount))

						(if bisclose
							(setq rblist (append '((0 . "LWPOLYLINE") (100 . "AcDbEntity") (67 . 0)
									   (100 . "AcDbPolyline")) (list (cons 90  (1+ count ))) '((70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0))
									(list (cons 10 (vlax-curve-getStartPoint obj)))
									 )
							)
							(setq rblist (append '((0 . "LWPOLYLINE") (100 . "AcDbEntity") (67 . 0)
									   (100 . "AcDbPolyline")) (list (cons 90  (1+ count ))) '((70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0))
									(list (cons 10 (vlax-curve-getStartPoint obj)))
									 ))
						)

						(setq inp 1)
						(setq segnpt 100)
						(while (< inp count)
							(setq subcount (min segnpt (- count inp)))
							(setq subrblist nil)
							(repeat subcount
								(setq vex (vlax-curve-getPointAtParam obj subparam))
								(setq subrblist (append subrblist (list (cons 10 vex))))
								(setq subparam (+ subparam (/ param segcount)))
							)
							(setq rblist (append rblist subrblist))
							(setq inp (+ inp subcount))
						)

						(setq rblist (append rblist  '((210 0.0 0.0 1.0))))
						(if(not (entmake rblist)) (exit))
						(if(not (setq pl (entlast)))(exit))
						(setq pl-obj (vlax-ename->vla-object pl))
								
						(setq newEntInfo (entget pl))
						(entmod (subst orgEntLayerName (assoc 8 newEntInfo) newEntInfo ))

						(if isDelOrgEnt
							(entdel ent)
						)
					)
				)
			)
		)
	)
	(princ)
)