Jump to content

Snapping to Tangent Issue


Recommended Posts

Hello,

 

So today I was creating a road centerline to make into an alignment. The road has many curves. So I was making circles and connecting them with lines while snapping from tangent to tangent. So far, so good.

 

Went I go to trim the circles using the lines I drew tangent to tangent, it says that there are no intersecting edges. WTF? When I zoom way in, the line is not touching the circle. Now, I know that visually that is NBD. When I run a distance check, snapping from endpoint to perpendicular, there is a measurement of zero. UGH!

 

So to get work done I've been having to break the circle and the 2 points, then erase the rest. This is such a PITA and I've never had anything like this happen.

 

-Thanks

 

 

P.S. I'm running Civil 3D 2013.

 

The top line is the circle, the bottom is the line tangent to it.

 

tangent issue.jpg

Link to comment
Share on other sites

Maybe you could use the EXTEND command instead, still tedious, but less so.

If you do a REGEN do the lines meet the circles?

Link to comment
Share on other sites

You might try just drawing a polyline over your already drawn lines and circles. This way, you could just keep switching from line mode to arc mode. I normally make the alignments from a polyline anyway. To ensure tangency when you go from arc mode back to line mode, just select 'length' after selecting 'line', and continue to the next point. Your lines and arcs of the polyline should always be tangent this way. Hope it helps some.

Link to comment
Share on other sites

Are you drawing LINES or PLINES?

 

LINES work much better for TAN to TAN.

 

I tried that and it helped with respect to going from tan to tan, but it didn't help with trimming the circles. I also made sure that none of the circles, arcs, lines had Z values.

Link to comment
Share on other sites

Works fine here, can you post a .dwg that is doing this?

 

Are you letting the cursor hover on the circles till ...Deferred Tangent is displayed in the tool tip?

 

Two Circles, two Lines Tan to Tan and then Trim.

 

[ATTACH=CONFIG]36107[/ATTACH]

Link to comment
Share on other sites

Sounds like you would be better of doing line line then fillet, ok if you dont know radius thanks to Alanjt here is a dynamic radius lisp that allows you to drag the arc size.

 

Once you get it about right I would use List and then erase arc and change radius to a true value eg 201.375 becomes 200 and re fillet.

 

(defun c:DyF (/ *error* _pnt AT:GetSel vl ov ent plst elst gr sp)
 ;; Dynamic Fillet
 ;; Alan J. Thompson, 03.07.11 / 03.09.11
 (vl-load-com)
 (defun *error* (msg)
   (redraw)
   (and vl (mapcar (function setvar) vl ov))
   (and elst (mapcar (function redraw) elst '(4 4)))
   (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,")))
     (princ (strcat "\nError: " msg))
   )
 )
 (defun _pnt (p) (trans (list (car p) (cadr p)) 0 1))
 (defun AT:GetSel (meth msg fnc / ent)
   ;; meth - selection method (entsel, nentsel, nentselp)
   ;; msg - message to display (nil for default)
   ;; fnc - optional function to apply to selected object
   ;; Ex: (AT:GetSel entsel "\nSelect arc: " (lambda (x) (eq (cdr (assoc 0 (entget (car x)))) "ARC")))
   ;; Alan J. Thompson, 05.25.10
   (setvar 'ERRNO 0)
   (while
     (progn (setq ent (meth (cond (msg)
                                  ("\nSelect object: ")
                            )
                      )
            )
            (cond ((eq (getvar 'ERRNO) 7) (princ "\nMissed, try again."))
                  ((eq (type (car ent)) 'ENAME)
                   (if (and fnc (not (fnc ent)))
                     (princ "\nInvalid object!")
                   )
                  )
            )
     )
   )
   ent
 )
 (if (setq ent
            (car
              (AT:GetSel
                entsel
                "\nSelect arc: "
                (lambda (x)
                  (if (eq "ARC" (cdr (assoc 0 (entget (car x)))))
                    (vl-every (function (lambda (p / ss)
                                          (if (setq ss (ssget "_C" p p '((0 . "LINE"))))
                                            (setq elst (cons (ssname ss 0) elst))
                                          )
                                        )
                              )
                              (setq plst (list (_pnt (vlax-curve-getStartPoint (car x)))
                                               (_pnt (vlax-curve-getEndPoint (car x)))
                                         )
                              )
                    )
                  )
                )
              )
            )
     )
   (progn
     (setq ov (mapcar (function getvar) (setq vl '("CMDECHO" "FILLETRAD"))))
     (while
       (progn
         (setq gr (grread T 15 0))
         (cond
           ((eq 5 (car gr))
            (redraw)
            (grdraw (setq sp (trans (vlax-curve-getStartPoint ent) 0 1)) (cadr gr) 1 -1)
            (princ
              (strcat "\rFillet radius: "
                      (rtos (setvar 'FILLETRAD (distance sp (cadr gr))))
                      "      "
              )
            )
            (if (vl-cmdf "_.fillet" (list (car elst) (car plst)) (list (cadr elst) (cadr plst)))
              (progn (entdel ent) (setq ent (entlast)))
              T
            )
           )
         )
       )
     )
   )
 )
 (*error* nil)
 (princ)
)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...