How to get in selection set bigger or equal hidden line

How to get in selection set bigger or equal hidden line

avinash00002002
Collaborator Collaborator
335 Views
2 Replies
Message 1 of 3

How to get in selection set bigger or equal hidden line

avinash00002002
Collaborator
Collaborator

I don't know where I am wrong I want to select bigger or equal line than (distance cp1 and cp2) no answer get in.

 

Code:

(Defun c:GsD()
(princ "Select Heel Line...\n")
;(if
(setq ss (ssget ":E:S"))
(if (/= ss nil)
(progn
(setq ent (ssname ss 0)
pickpt (last (last (car (ssnamex ss 0)))))
(setq sel ss)
(repeat (setq idx (sslength sel))
(setq enx (entget (ssname sel (setq idx (1- idx))))
sph (cdr (assoc 10 enx)) ;Start point of line
eph (cdr (assoc 11 enx)) ;End point of line
)
) ;Repeat
(setq eph1 eph)
(setq sph1 sph)
(if (> (distance sph pickpt) (distance pickpt eph))
(progn
(setq sph eph1)
(setq eph sph1) )

) ))
(princ "Select Toe Line...\n")
(setq ss1 (ssget ":E:S"))
(if (/= ss nil)
(progn
(setq ent1 (ssname ss1 0)
pickpt1 (last (last (car (ssnamex ss1 0)))))

(setq sel1 ss1)
(repeat (setq idx (sslength sel1))
(setq enx1 (entget (ssname sel1 (setq idx (1- idx))))
spt (cdr (assoc 10 enx1)) ;End point of line
ept (cdr (assoc 11 enx1)) ;End point of line
)
) ;Repeat
(setq ept1 ept)
(setq spt1 spt)
(if (> (distance spt pickpt) (distance pickpt ept))
(progn
(setq spt ept1)
(setq ept spt1) )
) ))
;Select Near End line
(command "_.Pan" sph pickpt)
(princ "Select Near End...\n")
(setq ss2 (ssget ":E:S"))
(if (/= ss nil)
(progn
(setq ent2 (ssname ss2 0))
(setq sel2 ss2)
(repeat (setq idx (sslength ss2))
(setq enx1 (entget (ssname sel2 (setq idx (1- idx))))
spn (cdr (assoc 10 enx1)) ;End point of line
epn (cdr (assoc 11 enx1)) ;End point of line
)
) ;Repeat
;Select Other End line
(setq pn1 (polar sph (angle sph eph) (- (distance sph eph) (distance sph pickpt))))
(command "_.Pan" eph sph)
))
(princ "Select Other End...\n")
(if (/= ss nil)
(progn
(setq ss3 (ssget ":E:S"))
(setq ent3 (ssname ss3 0))

(setq sel3 ss3)
(repeat (setq idx (sslength ss3))
(setq enx2 (entget (ssname sel3 (setq idx (1- idx))))
spo (cdr (assoc 10 enx2)) ;End point of line
epo (cdr (assoc 11 enx2)) ;End point of line
)
))
) ;Repeat
(if (/= ss nil)
(progn
(setq cp1 (inters eph sph epn spn nil))
(setq cp2 (inters eph sph epo spo nil))
(setq cp3 (inters ept spt epn spn nil))
(setq cp4 (inters ept spt epo spo nil))
(setq cp1 (trans cp1 0 1))
(setq cp2 (trans cp2 0 1))
(setq cp3 (trans cp3 0 1))
(setq cp4 (trans cp4 0 1))
(setq pp1 (polar cp1 (angle cp1 cp3) 25.0))
(setq pp2 (polar cp2 (angle cp2 cp4) 25.0))
(setq pp3 (polar cp1 (angle cp1 cp3) 3.0))
(setq pp4 (polar cp2 (angle cp2 cp4) 3.0))
(Select_Holes) ;For selecting holes in the bracing
)
)
)
(setq cnt 0)
(repeat (setq i (1- (sslength js1)))
(setq p1 (cdr (assoc 10 (entget (ssname js1 cnt)))))
(setq p2 (cdr (assoc 11 (entget (ssname js1 cnt)))))
(if (<= (distance cp1 cp2) (distance p1 p2))
(progn
(setq cntresult cnt)
(alert (strcat (rtos cnt 2 0) " Cp1-Cp2 = " (rtos (distance Cp1 Cp2) 2 1) " P1-P2 = " (rtos (distance p1 p2) 2 1)))
)
)
(setq cnt (1+ cnt))
)
)

 

Thanks,

Avinash

0 Likes
336 Views
2 Replies
Replies (2)
Message 2 of 3

Kent1Cooper
Consultant
Consultant

@avinash00002002 wrote:

I don't know where I am wrong I want to select bigger or equal line than (distance cp1 and cp2) no answer get in.

....


Maybe it's a language problem, but it's not clear what you're requesting.  Nothing in the code appears to be made to select a Line for you, if that's what you mean, so there is no way to evaluate why it does not find the Line you want.  Nor does anything make any reference to "hidden" if that linetype is a criterion for finding it.  Also, you don't include the definition of the (Select_Holes) function, so we can't tell what that will give you.  It looks like the js1 variable must come from that, but the way it is used suggests that it will contain Lines, not Holes.

 

[Not directly relevant to your request, but....  I think a lot of this would be much simpler if you use (entsel) rather than (ssget).]

Kent Cooper, AIA
0 Likes
Message 3 of 3

avinash00002002
Collaborator
Collaborator

Code:

(Defun Select_Holes()
(command "zoom" "o" ss ss1 ss2 ss3 "")
(setq js1 (ssget "cp" (list CP1 CP2 Cp4 Cp3) '((0 . "LINE") (8 . "H*"))))
);Defun

 

 

0 Likes