How to use AutoLISP to trim lines ?

Hello,everyone!
I meet a problem when use AutoLISP:
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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I dont understand, why would you want to use autolisp to do this when the trim command will do it for you?
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
(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.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I can think of two approaches right off.
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...
--


MichaelB
www.michaelbulatovich.ca
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
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. ___

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I assume it's part of a larger, more complex function that one wouldn't want to repeat too much.
--


MichaelB
www.michaelbulatovich.ca
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@gmail.com wrote:

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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Got that right. I usually don't get around to it since I work in an office with zero turnover. We just learn to live with the bumps.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.