我找到了一个解决方案:
计算每个鼠标点和OSMODE所需列表之间的距离。根据此距离,进行区分:
- (setq liosnap nil) ;_ end of setq
- (foreach el litos (if (setq op (osnap p el))
- (progn
- (setq d (distance p op) d (cond ((= el "_cen") (/ d 4.)) ((= el "_nea") (* d 10.)) (T d)) )
- (setq liosnap (cons (list d op el) liosnap)) )) ) ;_ end of f
- (if liosnap
- (setq liobs (car (vl-sort liosnap '(lambda (s1 s2) (< (car s1) (car s2)) ) ) ) op (nth 1 liobs) mod (nth 2 liobs) ) ;_ end of setq
- (setq op nil) ;_ end of setq
- ) ;_ end of if liosnap
-
OSNAP的某些方式更“敏感”(qua,snow),因此必须加以抑制。 |