只要用另一种方法得到你的中点。
这里有一种方法:
- (DEFUN C:HR (/ ORTM P1 P2 P3 AR AL RA P4 AN2 AN3 A3 AN P5 AN4 AR1)
- (SETQ ORTM (GETVAR "ORTHOMODE"))
- (SETVAR "ORTHOMODE" 0)
- (PROMPT "\nPICK POINT TO START FROM")
- (SETQ P1 (GETPOINT))
- (PROMPT "\nPICK POINT FOR ARROW HEAD")
- (SETQ P2 (GETPOINT))
- (COMMAND "ARC" P1 "E" P2 "D" PAUSE)
- [color="red"](SETQ P3 (POLAR P1 (ANGLE P1 P2)(/ (DISTANCE P1 P2) 2.0)))[/color]
- ;(SETQ P3 (OSNAP P1 "QUI,MID"))
- (SETQ AR (ENTLAST))
- (SETQ AL (ENTGET(ENTLAST)))
- (SETQ RA (CDR (ASSOC 40 AL)))
- (SETQ P4 (CDR (ASSOC 10 AL)))
- (SETQ AN2 (ANGLE P4 P2))
- (SETQ AN3 (ANGLE P4 P3))
- (SETQ A3 (ANGLE P4 P3))
- (SETQ AN (ANGLE P1 P2))
- (COND
- ((OR (> AN (* PI 1.5)) (< AN (* PI 0.5)))
- (IF (AND (> A3 0.0) (< A3 PI))
- (SETQ AN2 (ANGLE P4 P2))
- (SETQ AN2 (ANGLE P2 P4))
- )
- )
- ((AND (< AN (* PI 1.5)) (> AN (* PI 0.5))) ;;;Modifications were done
- (IF (AND (> A3 0.0) (< A3 PI)) ;;;here
- (SETQ AN2 (ANGLE P2 P4))
- (SETQ AN2 (ANGLE P4 P2))
- )
- )
- )
- (SETQ P5 (POLAR P2 (+ AN2 (* PI 0.5)) (* 0.15 (GETVAR "DIMSCALE"))))
- (SETQ AN4 (ANGLE P4 P5))
- (SETQ P5 (POLAR P4 AN4 RA))
- (COMMAND "PLINE" P2 "W" "0" (* 0.06 (GETVAR "DIMSCALE")) P5 "W" "0" "0" P2 "")
- (SETQ AR1 (ENTLAST))
- (COMMAND "PEDIT" AR "Y" "J" AR1 "" "X")
- (setq ar(entlast))
- (SETVAR "ORTHOMODE" ortm)
- )
|