Qasim Posted July 16, 2020 Posted July 16, 2020 Hi Everyone, i,m looking for LISP Program that will display Z value of 3D points as A.L=0.000 (Asphalt Level) and prompt for height between Asphalt level and top of curbstone levels because its varies and display as C.L=0.000 (Top of Curbstone level) on screen. i have a lot of data to process. for format please see the attached image. Quote
BIGAL Posted July 17, 2020 Posted July 17, 2020 Block or more likely leader but you have not shown how Z's are obtained need image or dwg. Quote
Qasim Posted July 18, 2020 Author Posted July 18, 2020 1 hour ago, BIGAL said: Block or more likely leader but you have not shown how Z's are obtained need image or dwg. Mr. Bigal, it should be a Leader and Z,s are obtained from design drawing dwg, just like i have one LISP which can work for Z Label to show on screen in model space but i need it should calculate the second level in second row. Please see the image attached. Quote
BIGAL Posted July 18, 2020 Posted July 18, 2020 (edited) Did civil for like 40 years always picked a control point on kerb, like Back of kerb or lip we just defined the level and kerb type 'B2 'Sm2 theses were authority standard so all change in height known. 150, 125 etc. Did not do two levels. If we did a non standard bluestone pitcher kerb again a block illustrating levels required was provided. For you 175mm just google leader with mtext, and providing that point has a Z value not 0.0 can get RL. I would use a block with two attributes can mirror block or do a left and right. If a point start with this (setq ent (entget (car (entsel "Pick point")))) (setq xyz (cdr (assoc 10 ent))) (setq z (caddr xyz)) (setq pt (list (car xyz)(cadr xyz))) Edited July 18, 2020 by BIGAL Quote
Qasim Posted July 18, 2020 Author Posted July 18, 2020 15 hours ago, BIGAL said: Did civil for like 40 years always picked a control point on kerb, like Back of kerb or lip we just defined the level and kerb type 'B2 'Sm2 theses were authority standard so all change in height known. 150, 125 etc. Did not do two levels. If we did a non standard bluestone pitcher kerb again a block illustrating levels required was provided. For you 175mm just google leader with mtext, and providing that point has a Z value not 0.0 can get RL. I would use a block with two attributes can mirror block or do a left and right. If a point start with this (setq ent (entget (car (entsel "Pick point")))) (setq xyz (cdr (assoc 10 ent))) (setq z (caddr xyz)) (setq pt (list (car xyz)(cadr xyz))) Mr. Bigal, your are right there are types of kerbs, but here we have to calculate the RL for site surveyors top of Kerb and data provided to us is as Asphalt levels we have also different heights of kertb stones like, 50mm, 175mm, 280mm, 160mm and also 850mm NJ Barriers. i was created a formula with field command that calculate the second level but problem was that i cannot place at desired location and that overlap the text. kindly design a LISP that can easy my job. thank you Quote
BIGAL Posted July 19, 2020 Posted July 19, 2020 Quick and dirty you need to make the block TOCAL, extra steps are mirror yes/no, I need to find the Dim varaible to force padding on decimals. (defun c:tocal ( / diff xyz z pt t1 t2) (setvar 'attdia 0) (setq diff (getreal "\Enter ht difference")) (while (setq ent (entget (car (entsel "Pick point")))) (setq xyz (cdr (assoc 10 ent))) (setq z (caddr xyz)) (setq pt (list (car xyz)(cadr xyz))) (setq t1 (strcat "T.O.C+" (rtos (+ diff z) 2 3))) (setq t2 (strcat "A.L+" (rtos z 2 3))) (command "-insert" "TOCAL" pt 1 1 0 t1 t2) ) (princ) (setvar 'attida 1) ) (c:tocal) If the lip line is a pline and the points are on the line then it can be a do all in one go. Quote
Qasim Posted July 20, 2020 Author Posted July 20, 2020 Mr. Bigal, I tried but it is showing Error like "Invalid" Function cancelled First it Prompt for ht difference then say pick point, when i pick point it cannot work. Quote
BIGAL Posted July 20, 2020 Posted July 20, 2020 (edited) When I refer to a Point I am referring to an Autocad "Point". You can use the osnap Node to find these. I have set the osnap in the code so re download if the points do not have a level set then they should return 0.0. 2nd thing is I did it simply and made a block with a leader and two attributes and called it TOCAL if this does not exist it will not work, I did this as its easier than using leader and asking for extra points or having to calculate those points, that could be like a improved version 2 nd more than likely after a bit of testing you would have some questions. If it does not work after making block "TOCAL" post a dwg much better than image. Edited July 20, 2020 by BIGAL Quote
Recommended Posts
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.