narendra Posted July 30, 2014 Posted July 30, 2014 Hi All, if any one having routine to convert revcloud to polyline please send me.......link:D Quote
ReMark Posted July 30, 2014 Posted July 30, 2014 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. Quote
hanhphuc Posted July 30, 2014 Posted July 30, 2014 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) ) 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.