hosyn Posted July 18, 2021 Posted July 18, 2021 Hi guys Any help to make particular stretch for pline : with selection set getting a part of pline and after breaking it to new segment and grip by pulling midle grip stretch that . the following shap :::: Quote
Dadgad Posted July 18, 2021 Posted July 18, 2021 How about using the ADD VERTEX hover grip option a couple of times, so you don't need to break it? Once you have done that a center grip would be available on the portion which you are trying to stretch? Quote
BIGAL Posted July 18, 2021 Posted July 18, 2021 If you can draw the new bit, you can break it and JOIN all the bits back to a single pline. Maybe google "NOTCH". I have done do an arc at a cnr similar problem. Quote
hosyn Posted July 18, 2021 Author Posted July 18, 2021 Of course this task reapetedly needed often to do and looking for a lisp to act stretch for pline Quote
BIGAL Posted July 19, 2021 Posted July 19, 2021 Have a go I have told you how to do it, just need the 2 points on the pline, there is lots of ways to do this, eg (setq pt1 (vlax-curve-getpointatdist obj1 len1)). Ok the steps Pick pline save entlast do the 2 pts break pline pt1 pt2 save entlast its the new bit after the break draw the new pline pedit entlast join ent1 ent2 all done ! Quote
tombu Posted July 19, 2021 Posted July 19, 2021 Here's an example I wrote to add a breakline symbol to a line or polyline sized according to (/ 0.1 (getvar 'cannoscalevalue)) to fit drawing at current scale: ;|======================================================= Draw Line with Breakline Symbol to Dimscale Updated 6/2018 Replacement for BREAKLINE (Express Tool) that works in any direction and scales to Annotation Scale. BrkLnSym Breaks lines and inserts break-line symbol ^C^C^P(or C:BrkLnSym (load "BrkLnSym.lsp"));BrkLnSym Brkline5k-oie.png (load "BrkLnSym.lsp") BrkLnSym ; =======================================================|; (defun c:BrkLnSym (/ *error* p1 p2 p3 p4 p5) (setq vars (mapcar '(lambda (x) (cons x (getvar x))) '("osmode" "nomutt"))) (defun *error* (msg) ;; Reset variables (mapcar '(lambda (x) (setvar (car x) (cdr x))) vars) (grtext -1 "") ;CLEAR STATUS LINE (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")) (princ (strcat "\nError: " msg)) (princ) ) ) (setvar 'osmode 512) (cond ((= 1 (getvar "cvport"))(setq InsScale 0.1)) ((= 1 (getvar "TILEMODE"))(setq InsScale (/ 0.1 (getvar 'cannoscalevalue)))) (T(setq InsScale (caddr (trans '(0 0 0.1) 3 2)))) ) (setq p3 (getpoint "\nBreak Point: ") ss (ssget p3) obj (vlax-ename->vla-object (ssname ss 0)) ang (angle '(0. 0. 0.) (vlax-curve-getFirstDeriv obj (vlax-curve-getParamAtPoint obj p3))) p1 (polar p3 ang InsScale) p2 (polar p3 (+ (/ pi 3) ang) InsScale) p4 (polar p3 (+ (/ pi 3) (- ang pi)) InsScale) p5 (polar p3 (- ang pi) InsScale) ) (setvar "nomutt" 1) (command "_break" ss p1 p5 "pline" p1 p2 p3 p4 p5 "") (entupd (ssname ss 0)) (mapcar '(lambda (x) (setvar (car x) (cdr x))) vars) (princ) ) You're not going to break the polyline with a window selection but if that's what you're wanting it to look like you going to need something like: (setq pt1 (getpoint)) (getcorner pt2 "\nPick a corner") to get the points you need. Can you describe what you're trying to do a little better? Will the stretch always be horizontal WCS and include all objects in the window? Quote
BIGAL Posted July 20, 2021 Posted July 20, 2021 Like tombu need to know the rules, midpoint ? length ? width ? Quote
hosyn Posted July 20, 2021 Author Posted July 20, 2021 (edited) Dear mates Acthually I like to modify it, for stretch any selected pline by window selection, that's all By selecting a part of pline the ability of stretch it in any direction needed like that stretch command Edited July 20, 2021 by hosyn 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.