There is a long , straight line going through a circle. I just want to trim off the part inside this circle ,and of course to remain the outside part of this line.
Does anyone know how to do that by using AutoLISP? Hope your answer might be as simple as possilble, I am just a begineer to use LISP.
One is to actually "trim" it by a command call, selecting the two items, and using a point inside the circle (easily generated from the circle's center
OR
another is to find the intersections of the line and circle, the endpoints of the line, and erase the original line and create two lines using the above points.
Both approaches have their challenges.
Have fun, and post some code as you work it out. I'm sure you'll get some help if needed...
(command "trim" "" pt "") pt must be defined as a varible and be the endpoint of the line to trim. This line can be placed in your autolisp routine after the endpoint of your line has been set to the varible pt.
I used this method when I first started learning autolisp but defining the endpoints of the lines and drawing the lines from pointa to pointb is a cleaner way to achieve the same end result. imo Although with radii it does involve a bit of math to define the points to draw the line.
How would the line and circle be selected? I can't think of any obvious way LISP or any other add-on routine could do it faster or with fewer clicks than the TRIM command. ___
why climb the mountain? because it is there. why decend into the valley? because it isn't there
writing code is fun, end of why.
I make the bold assumption that either you just want to know how to do it for achidemic reasons, or you intend to do it very many times.
Michael is (damn it) right again. I like the more complicated way because in the long run you can do more interesting stuff.
So I would add this. You can make your selection sets by picking entities. (the line and the circle) For that you went to too much work. You can also use ssx to select by filters and get ALL the circles of a particular layer ( or particular radius, radius & layer, linetype, whatever ) and get all the lines of a particular type. without actually picking on the screen.
Colour me anal retentive, but I do my utmost to avoid the word "command" in any lisp. It just isn't right. Once you have the ename of the line you want to "trim" you have choices. Erase the old and create two new entities, or modify the old and create one new. Create a copy of the old line in a new layer. Sum the lengths of the two new lines........
And all this is pretty simple. Error checking, now that't hard.
PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.