I'm having the following problems:
1.Cannot draw a line which is tangent to two circles and
2.Cannot draw an arc passing through three defined points.
Is there ways to get around the above problems?
#6
Sorry, I don't think I understand question 2. My only interpretation of question 2 is a 3 point arc, which works fine here. Do you have a more detailed explanation and perhaps a sample?
Bryan
bb2235@myrealbox.com
Bryan
bb2235@myrealbox.com
#12
This is a bug in IntelliCAD, but here is a workaround:
For O_o tangents,Copy the small circle to centre of the big circle.
Draw a line from big circle centre to its perimeter(a quadrant) & trim it inside the copied small circle - that gives a "difference" circle radius.
Draw the "difference" circle and move it to centre of big circle.
Draw line from centre of small circle tangent to the "difference" circle, then to its centre.
Extend that line to big circle perimeter & that's the first tan point.
Tan-Tan was hit-&-miss in ACAD too. It always was slower but safer to do it the long way.
For an O\o Tan/Tan line: PARALLEL the larger circle/arc to the outside, by the radius of the smaller one (set the PARALLEL value bt picking CEN,QUA), then LINE from CEN of the smaller to TAN of the new curve, then PARALLEL (same value)the line back to Tan/Tan of the circles/arcs. For O_o tangents, make the first PARALLEL to the inside...
For O_o tangents,Copy the small circle to centre of the big circle.
Draw a line from big circle centre to its perimeter(a quadrant) & trim it inside the copied small circle - that gives a "difference" circle radius.
Draw the "difference" circle and move it to centre of big circle.
Draw line from centre of small circle tangent to the "difference" circle, then to its centre.
Extend that line to big circle perimeter & that's the first tan point.
Tan-Tan was hit-&-miss in ACAD too. It always was slower but safer to do it the long way.
For an O\o Tan/Tan line: PARALLEL the larger circle/arc to the outside, by the radius of the smaller one (set the PARALLEL value bt picking CEN,QUA), then LINE from CEN of the smaller to TAN of the new curve, then PARALLEL (same value)the line back to Tan/Tan of the circles/arcs. For O_o tangents, make the first PARALLEL to the inside...
#13
I put it in a lisp:
(defun c:ctan ()
(setq oosmode (getvar "osmode"))
(setq ocmdecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq c1 (entget (car (entsel "Select smaller circle"))))
(setq c2 (entget (car (entsel "\nSelect larger circle, then draw line tangent to difference circle.."))))
(command "CIRCLE" (cdr (assoc 10 c2)) (- (cdr(assoc 40 c2))(cdr(assoc 40 c1))))
(setq c3 (entlast))
(setvar "osmode" 256)
(command "LINE" (cdr (assoc 10 c1)) pause "")
(setvar "osmode" 128)
(command "ERASE" (entlast) "")
(prompt "\nDraw line perpendicular to larger circle..")
(command "line" (getvar "lastpoint") pause "")
(command "ERASE" (entlast) "")
(setvar "osmode" 256)
(command "ERASE" c3 "")
(prompt "\nDraw line to tangent of smaller circle..")
(command "line" (getvar "lastpoint") pause "")
(prompt "\n..done.")
(setvar "osmode" oosmode)
(setvar "cmdecho" ocmdecho)
)
(defun c:ctan ()
(setq oosmode (getvar "osmode"))
(setq ocmdecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq c1 (entget (car (entsel "Select smaller circle"))))
(setq c2 (entget (car (entsel "\nSelect larger circle, then draw line tangent to difference circle.."))))
(command "CIRCLE" (cdr (assoc 10 c2)) (- (cdr(assoc 40 c2))(cdr(assoc 40 c1))))
(setq c3 (entlast))
(setvar "osmode" 256)
(command "LINE" (cdr (assoc 10 c1)) pause "")
(setvar "osmode" 128)
(command "ERASE" (entlast) "")
(prompt "\nDraw line perpendicular to larger circle..")
(command "line" (getvar "lastpoint") pause "")
(command "ERASE" (entlast) "")
(setvar "osmode" 256)
(command "ERASE" c3 "")
(prompt "\nDraw line to tangent of smaller circle..")
(command "line" (getvar "lastpoint") pause "")
(prompt "\n..done.")
(setvar "osmode" oosmode)
(setvar "cmdecho" ocmdecho)
)