Leaderboard
Popular Content
Showing content with the highest reputation on 02/23/2021 in all areas
-
Since when does the draftsman decide what is going to be included in a drawing? If the company is obligated to provide a client with a drawing then they must do so or they risk losing the client's business. Ask the draftswoman to name the specific tools and techniques she is "unwilling" to share. Then remind her the company is not obligated to retain her as an employee.2 points
-
Sounds like you need a new draftsman. Can they explain exactly what the concern is about? Since what I draw on company time belongs to the company, I am required to send what my bosses ask me to send.2 points
-
That make sense given the OP has all but given up on setting a criteria for who dies and who gets to live another day. I was still hoping that the OP will come to his senses and realize what i'm trying to say all along.1 point
-
Some good examples pBe Here's another method which avoids the double iteration (since we don't care which text object is removed): (defun c:delduptxt ( / e i l s v ) (if (setq s (ssget "_:L" '((0 . "TEXT")))) (repeat (setq i (sslength s)) (setq i (1- i) e (ssname s i) v (cdr (assoc 1 (entget e))) ) (if (member v l) (entdel e) (setq l (cons v l))) ) ) (princ) )1 point
-
1 point
-
can't remember where I got this from, all credits should go there of course. This should delete duplicate text objects (text on top of identical text) but will leave alone if the text is at different coordinates. (defun c:txtdeldup( / ss ssdup ct len e eb pt lay ang sty hgt str obj obj_list) (princ "\nSelect text objects.") ;Select objects and filter all but block insert objects. (setq ss (ssget (list (cons 0 "TEXT")))) (if ss ;If any valid objects were selected. (progn (princ "\nBuilding list of objects.") (setq ssdup (ssadd)) ;Initialize new selection set to hold objects to delete (setq len (sslength ss)) ;Find out how many objects were selected. (setq ct 0) (while (< ct len) ;Loop through selected objects (setq e (ssname ss ct)) ;Get an object name (setq eb (entget e)) ;Get the entity list from the object name (setq ct (+ ct 1)) ;Increment index into selection set (setq pt (cdr (assoc 10 eb))) ;Access object's coordinate (setq lay (cdr (assoc 8 eb))) ;Access object's layer (setq ang (cdr (assoc 50 eb))) ;Access object's rotation angle (setq sty (cdr (assoc 7 eb))) ;Access object's text style (setq hgt (cdr (assoc 40 eb))) ;Access object's text height (setq str (cdr (assoc 1 eb))) ;Access object's text string ;Make list of object properties ;(setq obj (list pt lay ang sty hgt str)) (setq obj (list pt str)) (if (not (member obj obj_list)) ;If these properties are not already in list (setq obj_list (cons obj obj_list)) ;Add them to the list (ssadd e ssdup) ;Else add object to selection set to delete ) ;End if ) ;End of while loop (if (> (sslength ssdup) 0) ;If there are any objects in the selection set to delete (progn (princ "\nDeleting duplicate objects.") (setq len (sslength ssdup)) ;Find out how many many objects to delete. (setq ct 0) (while (< ct len) ;Loop through objects and delete. (setq e (ssname ssdup ct)) ;Get object name (setq ct (+ ct 1)) ;Increment index into selection set (entdel e) ;Delete duplicate object ) ;End of while loop ;Print the number of objects deleted to command line (princ (strcat "\nDeleted " (itoa len) " duplicate objects." )) ) ;End progn (princ "\nNo duplicates found.") ;Else no there were no duplicates to delete. ) ;End if ) ;End progn (princ "\nNo text objects selected.") ;Else there were no valid objects selected ) ;End if (princ) )1 point
-
1 point
-
And the one to remain is the TEXT/MTEXT as selected for reference? Because that makes more sense so the program would know what to keep. (defun c:KillemaLL (/ a o ss) (if (and (setq a (car (nentsel "\nSelect Text string: "))) (setq o (member (Cdr (assoc 0 (setq ent (entget a)))) '("TEXT" "MTEXT") ) ) (setq s (ssget "_X" (mapcar '(lambda (d) (assoc d ent)) '(0 1 410))) ) ) (command "_erase" (ssdel a s) "") ) )1 point
-
1 point
-
If you FILLET a polyline with a line, you close the gap and extend the polyline in one step. You can temporarily replace the current radius with zero by holding down the Shift key (I did not know that!). You can also FILLET two polylines together.1 point
-
Totally inappropriate response Jamin. Good luck with your next CAD problem. The members who have posted in this thread include 2 forum moderators and collectively have a total of about 65,000 posts.1 point
-
Extra tools are usually lisp routines, which are not transferred with the drawing. Techniques are the way that the end result is produced and are within the draftsman. If you have any complex linetypes, then the second user would have to have the shape files to see the shapes, and the font file if it was a non standard one. You could DXFOUT with entities only.1 point
-
Fix all of the gaps. I found one gap of.... Distance = 0.00016738, Angle in XY Plane = 90.00000000, Angle from XY Plane = 0.00000000 Delta X = 0.00000000, Delta Y = 0.00016738, Delta Z = 0.00000000 Another of..... Distance = 0.01362220, Angle in XY Plane = 271.30793249, Angle from XY Plane = 0.00000000 Delta X = 0.00031094, Delta Y = -0.01361865, Delta Z = 0.00000000 Another of..... Distance = 0.00000001, Angle in XY Plane = 194.55636219, Angle from XY Plane = 0.00000000 Delta X = -0.00000001, Delta Y = 0.00000000, Delta Z = 0.00000000 Or .......... if you don't care how the gaps are filled, EXPLODE ALL, the PEDIT > M > J (set jointype to Both), give it a fuzz distance of 1.0, and voila.... a closed polyline.1 point
-
It is not a problem to solve. That will stay greyed out until you add at least one visibility parameter from the authoring pallets in the block editor. There is no contextual reference for the visibility panel until there is something for it to deal with.1 point
-
I use this lisp by BlackBox to expedite the setting of Columns to None as well as set Width to 0. https://www.augi.com/forums/showthread.php?170434-MText-width-set-to-zero&p=1330953&viewfull=1#post1330953 Discussion at that link may explain it as well.1 point
-
1 point
-
;;; Draw perpendicular line ;;; Alan J. Thompson, 10.15.09 (defun c:AALPer (/ #Ent #Read) (and (setq #Ent (car (entsel "\nSelect curve: "))) (vl-position (cdr (assoc 0 (entget #Ent))) '("LWPOLYLINE" "ARC" "LINE" "CIRCLE" "ELLIPSE")) (setq lAth'( 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18)) (setq lstReturnXY'(0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.80 0.85 0.9 0.95 1)) (while (not (eq 25 (car (setq #Read (grread T 15 0))))) (princ "\rSpecify point for line: ") (redraw) (if (vl-consp (cadr #Read)) (progn (setq ClosestPoint(vlax-curve-getclosestpointto #Ent (trans (cadr #Read) 1 0) T)) (setq END1 ClosestPoint END2 (cadr #Read)) (setq lst (mapcar (function (lambda (a) (polar END1 (angle END1 END2) (* (distance END2 END1) a)) )) lstReturnXY)) (if (< lAct (- (length lAth) 2)) ;;(length lAth) (PROGN (setq lAth (foo lAth)) (setq lAct (+ 1 lAct)) ) (PROGN (setq lAth'( 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18)) (setq lAct 0) ) ) (grvecs (list 1 (NTH 0 lst) (NTH 1 lst) 1 (NTH (car lAth) lst) (NTH (cadr lAth) lst) 1 (NTH (- (length lst) 2) lst) (NTH (- (length lst) 1) lst) ;;; 1 (NTH 19 lst) (NTH 20 lst) ) ) (fooaa (NTH (car lAth) lst) (NTH (cadr lAth) lst)) ) ) ;_ if ) ;_ while ) ;_ and (redraw) (princ) ) ;_ defun (defun fooaa (p p1 / ) (progn (setq hp (getvar 'HPNAME) i 1 *length*(distance p p1) ang (angle p p1) a (polar p (+ ang (* pi 1.5)) (/ *length* 2.)) b (polar p (+ ang (* pi 0.5)) (/ *length* 2.)) c (polar p ang *length*) ) (grvecs (list -3 a b b c c a)) ) ) (defun foo ( l ) (repeat 1(setq l (append (cdr l) (list (car l)))) ))0 points
-
-1 points