大家好,
我刚刚写道:
- ; Attempt for dimaligned + dimcontinue
- (defun C:test ( / oldosm pt1 pt2 pt3 ang dist )
- (setq oldosm (getvar 'osmode))
- (if
- (and
- (setq dist (getint "\nSpecify offset value"))
- (setq pt1 (getpoint "\nPoint1 "))
- )
- (while
- (setq pt2 (getpoint pt1 "\nPoint2 "))
- (setq ang (angle pt1 pt2))
- (setq pt3 (polar (mid pt1 pt2) (+ ang (/ 2 PI)) dist)) ; should be perpendicular from the midpoint between pt1 and pt2, on "dist" distance
- (setvar 'osmode 0)
- (command "_.dimaligned" pt1 pt2 pt3)
- (setq pt1 pt2)
- (setvar 'osmode oldosm)
- )
- )
- (princ)
- )
- (defun mid (p1 p2)
- (mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2.0)) p1 p2)
- )
我对极函数没有太多经验,但老实说,我看不出有什么错。
然而,在为偏移值输入100后,我得到了这个结果:
不是100个单位的偏移量,而是59,xxx。
我想不出是什么问题。pt3应垂直于pt1-pt2线的中点,距离为dist。 |