Jump to content

Recommended Posts

Posted

So in keeping with posting some of my LISPs, I used this just the other day, and just was reminded with the recent resurrection of the Fillet 0 issue thread where the OP was doing 40,000, not sure what LISP they used.

 

Per the latest resurrection, setting FILLETPOLYARC setting may or may not help depending on what you are trying to fillet.

 

The few times I have seen Fillet 0 fail with the P option was when the fillet radii completed something like a half circle when adjacent corners are filleted (something like the ends of a slot).

 

This can be handy dandy.

 

There are others like this around. For my use this was better than a few of the ones I tried.

 

You may need to change the FILLETPOLYARC=0 if you have issue using this with Radius=0.

 

In those situations when I had an issue, the LISP just doesn't do anything to those fillets, so I just go back with a small radius and change them, then you should be able to Fillet=0 those.

 

(defun c:MF () 
  (c:MultiPolyFillet)
)
(defun c:MultiPolyFillet (/ radius ss i ent) 
  (setq radius (getdist "\nFillet radius: "))
  (if radius 
    (progn 
      (setvar "FILLETRAD" radius)
      (setq ss (ssget '((0 . "LWPOLYLINE,POLYLINE"))))
      (if ss 
        (progn 
          (setq i 0)
          (while (< i (sslength ss)) 
            (setq ent (ssname ss i))
            (command "_.FILLET" "_P" ent)
            (setq i (1+ i))
          )
        )
      )
    )
  )

  (princ "MultiPolyFillet complete.")
  (princ)
)
(princ 
  "\nMultiPolyFillet loaded. Type MultiPolyFillet or MF to run."
)
(princ)

 

  • Like 3
Posted

I made this to run on our CNC profiles. It would always throw a tool path error if the polyline had corners the tool couldn't fit into. Because our profiles where generated from a laser outline and then cleaned by hand. A lot of the poly segments were very small and tedious to fix. using poly fillet would update all vertex and fillets to the radius you set. so if your profile had a larger radi it would create big wings. (see example) This only fillets if the radi is smaller then the tool dia or if two joined line segments can run fillet command. creates an old red outline poly on check layer to compare against. 

 

leans heavily on vlax-curve visual lisp functions. I think this took me about 2 week on and off to write up. updating the one profile could take 10 mins to multiped hours to fix manually. switching between AutoCAD and the CNC software to see if it would throw an error or finally pass. I think it became obsolete with the update to the CNC software.

PolySmooth.lsp example.dwg

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...