Visual LISP, AutoLISP and General Customization
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Need help finishing a lisp routine.

20 REPLIES 20
Reply
Message 1 of 21
Anonymous
518 Views, 20 Replies

Need help finishing a lisp routine.

I have a lisp routine that I am trying to write, and could use some
input. This routine is designed to take a typical state section and
subdivide it into quarter-quarter sections, based on 4 user selected
points (4 corners of section). It will then draw a closed polygon around
1 of the 16 possible quarter-quarter sections that the user inputs.
Below is what I have written so far. If someone could please help me
finish it, it would be very appreciated.


--
Stan D. Bohnsack
WWC Engineering
1849 Terra Ave
Sheridan, Wy. 82801
(307) 672-0761




Watch for word wrap...


engqtr.LSP SDB 5/05

User picks the four corners of a typical land section, then
the routine sub-divides the area and draws individual quarter-quarter
sections depending on user input.

(defun C:engqtr ( / asnp,osm,p1,p2,p3,p4)
(setq asnp (getvar "autosnap"))
(setq osm (getvar "osmode"))
(setvar "osmode" 33)
(setq p1 (getpoint "\nPick northwest corner of section:...")) (TERPRI)
(setq p2 (getpoint "\nPick northeast corner of section:...")) (TERPRI)
(setq p3 (getpoint "\nPick southwest corner of section:...")) (TERPRI)
(setq p4 (getpoint "\nPick southeast corner of section:...")) (TERPRI)
(setq NUM (getint "\nEnter numeric value of Q/Q section to be
drawn:..(1-16)"))
(setvar "autosnap" asnp)
(setvar "osmode" 0)
(setq
p1x (car p1)
p2x (car p2)
p12x (/ (+ p2x p1x) 2)
p1y (cadr p1)
p2y (cadr p2)
p12y (/ (+ p2y p1y) 2)
q1 (list p12x p12y)
p3x (car p3)
p4x (car p4)
p3y (cadr p3)
p4y (cadr p4)
p34x (/ (+ p4x p3x) 2)
p34y (/ (+ p4y p3y) 2)
q2 (list p34x p34y)
p13x (/ (+ p3x p1x) 2)
p13y (/ (+ p3y p1y) 2)
q3 (list p13x p13y)
p24x (/ (+ p4x p2x) 2)
p24y (/ (+ p4y p2y) 2)
q4 (list p24x p24y)
qq1x (/ (+ q1x p1x) 2)
qq1y (/ (+ q1y p1y) 2)
qq1 (list qq1x qq1y)
qq2x (/ (+ q2x p3x) 2)
qq2y (/ (+ q2y p3y) 2)
qq2 (list qq2x qq2y)
qq3x (/ (+ p2x q1x) 2)
qq3y (/ (+ p2y q1y) 2)
qq3 (list qq3x qq3y)
qq4x (/ (+ p4x q2x) 2)
qq4y (/ (+ p4y q2y) 2)
qq4 (list qq4x qq4y)
qq5x (/ (+ q3x p1x) 2)
qq5y (/ (+ q3y p1y) 2)
qq5 (list qq5x qq5y)
qq6x (/ (+ q4x p2x) 2)
qq6y (/ (+ q4y p2y) 2)
qq6 (list qq6x qq6y)
qq7x (/ (+ p3x q3x) 2)
qq7y (/ (+ p3y q3y) 2)
qq7 (list qq7x qq7y)
qq8x (/ (+ p4x q4x) 2)
qq8y (/ (+ p4y q4y) 2)
qq8 (list qq8x qq8y)
cp1x (/ (+ q2x q1x) 2)
cp1y (/ (+ q2y q1y) 2)
cp1 (list cp1x cp1y)
cp2x (/ (+ qq2x qq1x) 2)
cp2y (/ (+ qq2y qq1y) 2)
cp2 (list cp2x cp2y)
cp3x (/ (+ qq4x qq3x) 2)
cp3y (/ (+ qq4y qq3y) 2)
cp3 (list cp3x cp3y)
cp4x (/ (+ cp1x q1x) 2)
cp4y (/ (+ cp1y q1y) 2)
cp4 (list cp4x cp4y)
cp5x (/ (+ cp2x qq1x) 2)
cp5y (/ (+ cp2y qq1y) 2)
cp5 (list cp5x cp5y)
cp6x (/ (+ cp3x qq3x) 2)
cp6y (/ (+ cp3y qq3y) 2)
cp6 (list cp6x cp6y)
cp7x (/ (+ q2x cp1x) 2)
cp7y (/ (+ q2y cp1y) 2)
cp7 (list cp7x cp7y)
cp8x (/ (+ qq2x cp2x) 2)
cp8y (/ (+ qq2y cp2y) 2)
cp8 (list cp8x cp8y)
cp9x (/ (+ qq4x cp3x) 2)
cp9y (/ (+ qq4y cp3y) 2)
cp9 (list cp9x cp9y)
)

(If (= NUM 1)
(COMMAND "PLINE" p2 qq3 cp6 qq6 p2 "")
)
(If (= NUM 2)
(command "PLINE" qq3 q1 cp4 cp6 qq3 "")
)
(If (= NUM 3)
(command "PLINE" cp6 cp4 cp1 cp3 cp6 "")
)
(If (= NUM 4)
(command "PLINE" qq6 cp6 cp3 q4 qq6 "")
)
(If (= NUM 5)
(command "PLINE" q1 qq1 cp5 cp4 q1 "")
)
(If (= NUM 6)
(command "PLINE" qq1 p1 qq5 cp5 qq1 "")
)
(If (= NUM 7)
(command "PLINE" cp5 qq5 q3 cp2 cp5 "")
)
(If (= NUM 😎
(command "PLINE" cp4 cp5 cp2 cp1 cp4 "")
)
(If (= NUM 9)
(command "PLINE" cp1 cp2 cp8 cp7 cp1 "")
)
(If (= NUM 10)
(command "PLINE" cp2 q3 qq7 cp8 cp2 "")
)
(If (= NUM 11)
(command "PLINE" cp8 qq7 p3 qq2 cp8 "")
)
(If (= NUM 12)
(command "PLINE" cp7 cp8 qq2 q2 cp7 "")
)
(If (= NUM 13)
(command "PLINE" q4 cp3 cp9 qq8 q4 "")
)
(If (= NUM 14)
(command "PLINE" cp3 cp1 cp7 cp9 cp3 "")
)
(If (= NUM 15)
(command "PLINE" cp9 cp7 q2 qq4 cp9 "")
)
(If (= NUM 16)
(command "PLINE" qq8 cp9 qq4 p4 qq8 "")
)
)
20 REPLIES 20
Message 21 of 21
vinodhkumar
in reply to: Anonymous

i want this code in autocad.net.please help someone

 thans in advance

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost