 - (defun c:tt ()
- (xdrx_begin)
- (if (and (setq div1 (getint "\n输入曲线方向等分数<退出>:"))
- (setq div2 (getint "\n输入曲线间等分数<退出>:"))
- (xdrx_initssget "\n选择两条内外曲线<退出>")
- (setq ss (xdrx_ssget
- '((0 . "*polyline,circle,ellipse"))
- )
- )
- (= (sslength ss) 2)
- (setq mp (xdrx_mpolygon_make ss))
- (= 2 (xdrx_getpropertyvalue mp "numloops"))
- (= 1 (length (xdrx_getpropertyvalue mp "rootloops")))
- )
- (progn
- (setq g1 (car (xdrx_getpropertyvalue mp "rootloops" t)))
- (setq g2 (car (xdrx_getpropertyvalue mp "childloops" t)))
- (setq pts1 (xdrx_curve_getpointsatdists g2 div1)
- pts2 (xdrx_curve_getpointsatdists g1 div1)
- dis (distance (car pts1) (car pts2))
- dis1 (/ dis div2)
- )
- (if (minusp (* (xdrx_points_area pts1) (xdrx_points_area pts2)))
- (setq pts1 (reverse pts1))
- )
- (mapcar '(lambda (x y)
- (xdrx_line_make x y)
- (xdrx_setpropertyvalue (entlast) "color" 1)
- )
- pts1
- pts2
- )
- (setq i 0)
- (repeat (1- div2)
- (setq e (xdrx_curve_offset (* (setq i (1+ i)) dis1) g2))
- (setq pts (xdrx_curve_getpointsatdists (entlast) div1))
- (xdrx_entity_delete (entlast))
- (xdrx_polyline_make pts t)
- (xdrx_setpropertyvalue (entlast) "color" 1)
- )
- )
- )
- (xdrx_entity_delete mp)
- (xdrx_end)
- (princ)
- )
或者
 - (defun c:tt ()
- (xdrx_begin)
- (if (and (setq div1 (getint "\n输入曲线方向等分数<退出>:"))
- (setq div2 (getint "\n输入曲线间等分数<退出>:"))
- (xdrx_initssget "\n选择两条内外曲线<退出>")
- (setq ss (xdrx_ssget
- '((0 . "*polyline,circle,ellipse"))
- )
- )
- (= (sslength ss) 2)
- (setq mp (xdrx_mpolygon_make ss))
- (= 2 (xdrx_getpropertyvalue mp "numloops"))
- (= 1 (length (xdrx_getpropertyvalue mp "rootloops")))
- )
- (progn
- (setq g1 (car (xdrx_getpropertyvalue mp "rootloops" t)))
- (setq g2 (car (xdrx_getpropertyvalue mp "childloops" t)))
- (setq pts1 (xdrx_curve_getpointsatdists g2 div1)
- pts2 (xdrx_curve_getpointsatdists g1 div1)
- dis (distance (car pts1) (car pts2))
- dis1 (/ dis div2)
- )
- (if (minusp (* (xdrx_points_area pts1) (xdrx_points_area pts2)))
- (setq pts1 (reverse pts1))
- )
- (mapcar '(lambda (x y)
- (xdrx_line_make x y)
- (xdrx_setpropertyvalue (entlast) "color" 1)
- )
- pts1
- pts2
- )
- (setq i 0)
- (repeat (1- div2)
- (setq pts (xdrx_points_offset (* (setq i (1+ i)) dis1) pts1))
- (xdrx_polyline_make pts t)
- (xdrx_setpropertyvalue (entlast) "color" 1)
- )
- )
- )
- (xdrx_entity_delete mp)
- (xdrx_end)
- (princ)
- )
|