我可能又错了,但我是这样理解的:
- (defun c:xlindistdiv ( / p1 p2 x dnum v n num k p pl )
- (setq p1 (getpoint "\nPick or specify first point : "))
- (setq p2 (getpoint p1 "\nPick or specify second point : "))
- (setq x (/ (distance p1 p2) 4200))
- (setq dnum (* (fix (1+ x)) 4200))
- (setq v (mapcar '- p2 p1))
- (setq n (polar '(0.0 0.0) (+ (angle '(0.0 0.0) v) (* 0.5 pi)) 1.0))
- (initget 6)
- (setq num (getint (strcat "\nSpecify number of XLINE entities for division of distance between two picked points <" (itoa dnum) "> : ")))
- (if (null num)
- (setq num dnum)
- )
- (setq x (/ (distance p1 p2) num))
- (setq k 0.5)
- (repeat num
- (setq p (polar p1 (angle p1 p2) (* k x)))
- (setq k (1+ k))
- (setq pl (cons p pl))
- )
- (setq pl (reverse pl))
- (foreach p pl
- (entmake
- (list
- '(0 . "XLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbXline")
- (cons 10 p)
- (cons 11 n)
- )
- )
- )
- (princ)
- )
HTH,M.R。
P、 请注意,默认数字将为4200、8400(2*4200)、12600(3*4200),当第一次除法是用数字4200时,取决于四舍五入的数字。。。 |