Jump to content

Steel reinforcement bars quantity survey lisp to table


Salama

Recommended Posts

  • 2 weeks later...

ekolman2003,

 

You have changed the annotations on this drawing by removing the "[" characters.

 

Consequently you need to change the delimiter so the program can operate.

 

;delimit (list "..." (chr 216) "/" "L=") ; Original case.            ;
;delimit (list (chr 216) "\"" "L=")      ; Yoni's case.              ;
;delimit (list "[" "/" "L=")             ; pyrzms's case             ;
delimit (list " " "/" "L=")             ; ekolman's case            ;

 

Also note that in your attached drawing there are still approx. 100 annotations that are divided in two. They need to be joined together.

 

Summary of Commands in this program:

  • REBAR......Generates the Tables
  • REPAIR.....Join Together Separated Annotations.
  • NCL.........Zoom to Next Error Cloud.
  • ECL.........Erase All Error Clouds.

 

ymg

rebar ekolman.LSP

Link to comment
Share on other sites

ekolman,

 

Had to change delimiter again to:

 

 delimit (list (chr 131) "/" "L=")       ; ekolman's case           ;

 

Another problem was your style with a fixed height. Make sure the style has no height.

 

Yet another problem, had to scale the deawing by a factor of 10, otherwise the routine was

going into error due to the size of the revision cloud.

 

You also had separated annotations, plus other annotations taht did not belong to barlayer.

 

Finally there is at least 2 annotations for which the bar length is not given.

 

This flurry of errors, suggest a few ameliorations to the routine. However you should stick

to a standard of putting only relevant annotations on barlayer, and for God's sake establish

your delimiters once and for all.

 

This program did not originate with me and has been patched. Probaly needs a complete rewrite and may be change the output to table instead of Text and Lines.

 

Suggestion would be appreciated.

 

ymg

1-) Statik Proje (1).dwg

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

hello ymg3 , first of all i m so appreciated about your briefings and efforts. I used that lisp and it works well and i made some minimal revisions on it. My question is simple but i couldnt find correct string to edit.

 

 

I dont want to use and include in table SPACING . I have revised that line (setq titdata '(nil nil 2 1 nil 4)) ; pyrzms's case so at table SPACING column values became empty.Thats ok .

 

 

But lisp doesnt work. When I add spacing as like 5ø16/300 L=715 lisp works well. But i want to use that lisp while value is 5ø16 L=715. Which part i should make revision in lisp for not using /SPACING .

 

 

Thank you for interest

Link to comment
Share on other sites

kuttik,

 

You did not post a drawing, but you seem to be using "(chr 248 )" instead of (chr 216) as a delimiters.

The slash bar is no longer part of the delimiters, so set at: delimit (list (chr 248 ) "L=")

 

Variables poslgth need to be set at 3

 

What you did fo variables titdata is almost correct needs to be '(nil nil 2 1 nil 3) :

; Titles data gives position of data in barl for each titles column       ;
   ; If nil is entered at a position the column will be kept blank,          ;
   ; except for first column.  A nil there means position numbers do not     ;
   ; exist, so the program will generate them.                               ;
    
   ;(setq  titdata '(0 nil 1 2 3 4))       ; Original case                   ;
   ;(setq  titdata '(nil nil nil 2 1 3))   ; Yoni's case                     ;
    (setq  titdata '(nil nil   2 1 nil 3)) ; Kutty's's case                  ;
 
    (setq colw 12
   rowh 6
  ;delimit (list "..." (chr 216) "/" "L=") ; Original case.           ;
  ;delimit (list (chr 216) "\"" "L=")      ; Yoni's case.             ;
          delimit (list (chr 248) "L=")           ; Kutty's case             ;
   positem (car titdata)   
   posnumb 1   ; 1 for Original		1 Yoni's       1 pyrzms's     ;
   posdiam 2   ; 2 for Original		2 Yoni's       2 pyrzms's     ;
   poslgth 3   ; 3 for Original		3 Yoni's       3 Kutty's      ;
   datwidth (apply '+ titwidth)
    )

Edited by ymg3
Link to comment
Share on other sites

thank you so much. I have solved and I post "I solved thank you" and I showed how i solved but i think my net is gone so I couldnt post by mistake. But thank you so much. I solved as you have mentioned. Thank you again for interest

Link to comment
Share on other sites

hi ymg3 again. Could you check the drawing that i have attached for a minute please ? The character for reinforcement dia as you see %%O%%C%%O. For example there s a reinforcement bar which is shown as 1∅16 but when I click on text it shows 1%%O%%C%%O16. What kind of string should i use to find that value?? I have tried delimit (list (chr 216) "L=") delimit (list "%%" "L=") delimit (list "%%O%%C%%O" "L=") delimit (list "%%O" "L=") and kind of lots of combinations. Autocad can't find %%O%%C%%O why i dont know, so due to reason of that I can't find and replace all these %%O%%C%%O. If i find at least I can change these values with chr 248 or chr 216. What should I do ? Actually I have discussed that issue other under topics with masters :) But they couldn't find the character to use too. I hope you can solve that. Thank you for help from now

Reinforcement A.dwg

Link to comment
Share on other sites

kuttik,

 

This would work : (setq delimit (list "%%O%%C%%O" "L=")

 

However, you also have annotations with an x in them,

furthermore they are on various layers.

 

So you will have to define a standard for your annotations

otherwise nothing will work.

 

By the way %%C is another way to enter a Diam. symbol,

I believe %%O means overwrite. So the symbol used is

actually two characters one on top of the others.

 

What I suggest is to do a find and replace on all the annotations

with an x replace with nothing. Then make sure that all annotations

are on a single layer, then run.

 

ymg

Link to comment
Share on other sites

delimit (list "%%O%%C%%O" "L=" doesn't work , because of that I have uploaded drawing :) I tried everything before and even now but it doesnt work . Autocad can find as lisp can as %%C but lisp and Autocad can't find %%O

 

 

So I cant do find and replace too :) Lisp doesnt work for that autocad. Also autocad find command doesnt work for that symbol 2∅16 L=295 I made copy the ∅ from autocad and paste to lisp and even find window but again doesnt work .. Very interesting problem right ? :)

Link to comment
Share on other sites

kuttik,

 

Delimiters does work.

 

However as I told you remove the x sign in your annotations.

 

Find and Replace won`t work with %%C, but it will work with the x.

 

The problem is not really interesting, it is yet another case of failure

to enforce standards when the annotations are done.

 

The rebar crews are champions at it. You would expect that by now

there would be a standard way to designate bars. Alas! Not so!!!!

 

ymg

Link to comment
Share on other sites

ymg3 ,

 

 

delimit (list "%%O%%C%%O" "L=" doesn't work again i m tellin that. I dont need to replace x signs because i will not include stirrups. And again i m tellin Find and Replace work with %%C well. Find and Replace doesnt work with %%O

 

 

Anyhow, in general discussion are at forum this issue couldnt be solved too. I think one by one i will select 2∅16 L=295 and make 2 Ø16 L=295 ( which is not including %%O)

 

 

Even so thank you for your effort

Link to comment
Share on other sites

Kutty`s

 

Here is your drawing, to show you the delimiters does work.

 

There is also some annotations with a (GOVDE) attached to them

need to clean these.

 

Some of the annotations do have the (chr 216). Will need to be changed.

 

ymg

kutty.dwg

Link to comment
Share on other sites

kutty,

 

The following will replace all the funny character with (chr 216)

 

(defun repkutty ()
  (setq  ss1 (ssget "ALL" (list  (cons 0 "TEXT"))))	   
  (if ss1
     (repeat (setq n (sslength ss1))
         (setq   en (ssname ss1 (setq n (1- n)))
                enl (entget en)
        otxt (cdr (assoc 1 enl))
               ntxt (vl-string-subst (chr 216) "%%O%%C%%O" otxt)
                enl (subst (cons 1 ntxt) (assoc 1 enl) enl)
         )
         (entmod enl)
     )     
  )
)            

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...