Technique that can check the current plotter name for the current tab and assign it to a variable? i.e. can it be assigned to a variable to check if if equals "myplotter1". The next step - is there a technique to change the plotter name to "myplotter2.pc3".
I have partially done the latter part of this in the past using the -plot command line to ASSIGN a new plotter but I would really like to only run the routine if it really needs to.
The first rectangle is drawn from 0,0 at the World Coordinate System. There is never any trouble with the code below when the objects are drawn at the WCS. The problem is when I try to draw a bounding box around an object while in another UCS. It seems that it always draws the bounding box at the WCS instead of my UCS. I have used (trans <pointlist> 0 1) on all combinations it seems and I still cannot get it to draw the bounding box at the current UCS.
i have a for example a block with one attribute and would like add a new attribute. i´m trying to read the current block and redefine - it comes a new attribute in propertieswindow but not graphical.
I have the below code (from a user here on the forum) which works great for aligning text, mtext and blocks to 2 points. For annotative entities, it respects the rotation angle for mtext and text.
ie I have an mtext object at 1"=20' scale and at 1"=40' scale. I run the command when the current annotative scale is 1"=40'. The object at 40' scale has changed, but the 20' scale is unchanged. This is working as I would like it to.
But for annotative blocks, it gets weirded out. In the above example, the block at 40' will rotate, but so will the attributes at 20' scale. But linework and hatching at 20' scale will be unchanged. it looks really weird. how to get it to play nice with blocks. Ideally, I'd like the block to be at different rotation angles in different annotative scales.
(defun C:R2P (/ ss ang edata); = Rotate objects to align with 2 Points (setq ss (ssget '((0 . "*TEXT,INSERT"))) ang (angle (getpoint " First alignment point: ") (getpoint " Second alignment point: ")) ) (repeat (sslength ss) (setq edata (entget (ssname ss 0))) (entmod (subst (cons 50 ang) (assoc 50 edata) edata)) (ssdel (ssname ss 0) ss) ))
How to create lisp which i can simply type in to the command bar so that the current drawing's filepath-folder will be automatically opened by windows explorer?
How to change the dim text color in current dimstyle with a lisp routine? I want to modify current dimstyle instead of override current dimstyle, so it can change all existing dim text color under the current dimstyle.
I have a problem with "tools/window attributes/configure current"when I try to configure current window (especialy tabulator spaces 8 -> 2) I got fatal error: unhandled access violation Writing 0x0000 Exception at cc424946h
We are using this code for Page setup. But We don,t know how to make this page setup current and active. (defun c:pgs ()(acet-error-init(list(list"cmdecho"0"osmode" 0)T))(vl-load-com)(setvar "Tilemode" 0)(vla-Add (vla-get-PlotConfigurations (vla-get-ActiveDocument (vlax-get-acad-object))) "A1" :vlax-false)(vla-put-PageSetupOverridesTemplateFile (vla-get-files (vla-get-preferences (vlax-get-acad-object))) "A1")(setq item (vla-Item (vla-get-PlotConfigurations (vla-get-ActiveDocument [code]........
Current text style: "Standard" Text height: 0.0833 Annotative: No Current text style: "Standard" Text height: 0.0833 Annotative: No Current text style: "Standard" Text height: 0.0833 Annotative: No Current text style: "Standard" Text height: 0.0833 Annotative: No
Using lisp to insert a dynamic block that uses an align parameter. I have a rather elaborate lisp program that I am adding to so that it can insert one of my library blocks which contains an alignment parameter. It sure would be nice if the alignment could be automatic and not involve additional user input.
What I am hoping for would be a way to allow the alignment parameter to do its job when inserting with the following line of
(command "-insert" BLK-N-PTH ins 1 1 rot)
I was catching the rotation value of a "parent" dynamic block by using vla-get-rotation and then correcting for UCS and converting form radians to degrees, and this works well for straight blocks, but some of my blocks are curves and the whole paradigm falls apart with then.
So far my workaround is to have the user also pick the rotation, which does seem to work:
I started a lisp that moves blocks according to their attributes and align numeric value in x 0.0. I work currently selected point by point. I will wish it to run at once on a selection set (I am angry with entsel).
(defun c:test (/ sel ent st newpt) (if (setq eset(ssget)) (progn
What I am trying to do is figure out the steps to "reset" geometry within blocks. (Assuming rectilinear).
That is to say find the min X value and Y Value and align that with the 0,0 of the block. To be able to do this on a drawing full of blocks. Essentially fixing poorly defined blocks whose origins are miles/km's away!
Is there a macro/script/deisel that will automatically print a pdf (cute pdf autocad lt 2007) to current plot settings in current drawing directory and give it the current drawing view name and number? Disk space not a problem these days and would save time to have a pdf copy of all drawing tabs readily stored in the directory ready for issue.
I've gotten these two routines from different threads on here. One works with *text and blocks. The second works with multileaders.
I'd like to merge the two so one command can work with a selection set of any of the above objects (assume selection set of mixed objects - some multileaders, some text, some blocks)
(defun c:at ( / ss ang *error*)(vl-load-com)(ErrorHandler '("cmdecho" "osmode"))(setvar "cmdecho" 0)(setvar "osmode" 576)(setqss (ssget '((0 . "*TEXT,INSERT")))ang (getangle " Select two points along desired alignment:"))(mapcar'(lambda (x)(vla-put-rotation(vlax-ename->vla-object x)ang))(mapcar 'cadr (ssnamex ss)))(*error* nil))(defun c:test (/ ss ang i sset)(vl-load-com); Tharwat 17. 05. 2011 (if (and (setq ss (ssget ":L" '((0 . "MULTILEADER")))) (setq ang (getangle " Specify Rotation Angle :"))) (repeat(setq i (sslength ss)) (setq sset (ssname ss (setq i (1- i)))) (vla-put-TextRotation (vlax-ename->vla-object sset) ang)) (princ)) (princ))
I am trying to write a program to align a block with two selected destination points. - first the user is prompted to select a lwpolyline of a block entity - then he is prompted to pick two destination points
I face problem with the sub-routine SegmentPts. It is supposed to return the coordinates of two vertexes on both sides of the picked point on a lwpolyline using entsel. But here in my program, when i am picking a point using entsel on a lwpolyline inside a block entity, it is not returning the two vertexes on both sides of the picked point. In stead, it returns some other points of the selected LWPOLYLINE. Why it is doing so? Where is the problem in my program?
It works fine with my other programs where i pick on a LWPOLYLINE entity. In this particular case, the LWPOLYLINE is inside a Block entity and the program is not returning correct points.
Please check Lisp Program below:
(defun C:alb() (setq ent1 (entsel " Pick on one side of LWLINE ofa Block:" )) (setq ent (nentselp (cadr ent1))) [code]........
I have 1 Next button that is used on the timeline. Each position has a pause then a play so there is only 1 button. I need to get the label info so I know where I am so I can save the location of the timeline that the user was at if they exited before they finished the process.
I would like to get the current AutoCAD View name in .NET.
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetCurrentView().Name always returns "", even when viewing a View with a name.
When I use trim or extend commands and have to zoom or pan to select additional objects the command drops selection in previous view and only edits items in current view when executed.
Is there a system variable I can use to change this little time waster?
I'm working on a couple of models (all using the same "stage" for rendering) and I split the models up into their own separate dwgs but retaining the stage area for each. What I'm having an issue with is rendering the current view in model space. What's happening is that I'll either get an all black (meaning nothing was rendered) or I'll get a rendered piece of the stage where a model once was set up, but not the current view for which I want (where the model is set now). So basically, the rendered view is pointing somewhere else. I'm not setting any of the camera views however to render; I've been using just the current view so I can get exactly what I want. I just need to figure out "how" to get it to render what I'm seeing on screen (consistently) and not something off to the side, or a shot of the wall or floor, or the old location of previous renders, etc. Sometimes switching back to 2D wire frame will fix the problem, but now it's not. I've tried setting the camera view current and that isn't working either. It still renders what was an "old" rendered view--like it's stuck in memory. Closing and re-opening CAD doesn't fix the issue. This is very frustrating. All I'm trying to get is a WYSIWYG rendered view.