Jump to content

Is there any routine convert Revcloud to Polyline


narendra

Recommended Posts

Revclouds are light weight polylines. What's wrong with that?

 

If you want to remove the curves from a revcloud then that is a different story altogether. All you have to do then is select a revision cloud you want to fix, right-click and go to Polyline > Decurve.

Link to comment
Share on other sites

Hi All,

if any one having routine to convert revcloud to polyline please send me.......link:D

 

Tool to modify the bulges, reverse or decurve the revcloud

if bulge value =0.000, ie: flatten :)

;http://www.cadtutor.net/forum/showthread.php?87920-Is-there-any-routine-convert-Revcloud-to-Polyline

(setq *yesno* "No")

(defun c:modcd (/ e e1 i bu) ;
;hanhphuc 30/07/2014

 (if (and (setq e (car (entsel "\nPick Revcloud.. ")))
   (setq l (entget e))
   (setq e1 (vlax-ename->vla-object e))
   (= (vla-get-objectname e1) "AcDbPolyline")
   (setq bu ('((x) (/ (apply '+ x) (length x)))
	      (mapcar 'cdr (vl-remove-if-not ''((x) (= (car x) 42)) l))
	      )
	 ) ;_ end of setq
   (setq i	 -1
	 bu	 (UREAL 0 "" "\nBulge value.. " bu) ; <---example try 0.5 +/- 
	 *yesno* (UKWORD 0 "Yes No" "\nReverse ?" *yesno*)
	 bu	 (if (= *yesno* "Yes")
		   (* bu -1.)
		   bu
		   ) ;_ end of if
	 ) ;_ end of setq
   ) ;_ end of and
   (repeat (if (= (vla-get-closed e1) :vlax-false) ;(zerop (cdr (assoc 70 (entget e))))
      (1- (cdr (assoc 90 l)))
      (cdr (assoc 90 l))
      ) ;_ end of if
     (vla-setBulge e1 (setq i (1+ i)) bu)
     ) ;_ end of repeat
    (princ "\nNot LWpolyline..")
   ) ;_ end of if
(princ)
 ) ;_ end of defun



;;;-------------------------------------------------------------------
;; This function is freeware courtesy of the author's of "Inside AutoLisp"
;; for rel. 10 published by New Riders Publications.  This credit must
;; accompany all copies of this function.
;;* UKWORD User key word. DEF, if any, must match one of the KWD strings
;;* BIT (1 for no null, 0 for none) and KWD key word ("" for none) are same as
;;* for INITGET. MSG is the prompt string, to which a default string is added
;;* as <DEF> (nil or "" for none), and a : is added.
;;*

(defun UKWORD (bit kwd msg def / inp)
 (if (and def (/= def ""))
   (setq msg (strcat "\n" msg " <" def "> : ")
         bit (* 2 (fix (/ bit 2)))
         )                             ;setq
   )                                   ;if
 (initget bit kwd)
 (setq inp (getkword msg))
 (if inp inp def)
 )                                     ;defun


(defun UREAL (bit kwd msg def / inp)
 (if def
   (setq msg (strcat "\n" msg " <" (rtos def 2) "> : ")
         bit (* 2 (fix (/ bit 2)))
         )
   (setq msg (strcat "\n" msg "? : "))
   )                                   ;if
 (initget bit kwd)
 (setq inp (getreal msg))
 (if inp inp def)
 )   

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...