Lisp routine that divided up a normal square / rectangle room and insert a block at each given point.
At present if the room was to have four lights width ways and three lights length ways we would divide the width by eight to give us 1/2 1 1 1/2 so the lights would be placed on every second point after the divde command (dividing the room by twice the amound of lights needed).
Is there a routine that I could use to count the blocks that are in a closed polyline? The blocks may have or not one or more attributes.
In a previous session I saw a routine which was counting the blocks which had attributes in them, but it doesn't really work, because some of the blocks dont have attributes.
Also is there a routine that counts the different texts that are in the same polyline?
I've have code to test if the insertion point is within a closed polygon. But prior to testing the insertion point I use ssget to trim the selection set initially..
this requires that the whole Crossing Polygon is visible, so I do a zoom first. This requires time. Is there a way I can do this that does not require the zoom?
I have a closed polyline that i can add the area to via a field in mtext using the options under area. I would like the area to always be rounded down to the nearest square meter. Is the a way to do this via the acfields.fdc file?
I have many floorplans and each room has a polyline around it.
What I'd like to do, is be able to select multiple (or single) polylines and have a dynamic field with the area attached to each polyline placed in the middle (or on a consistent edge, say top left). Preferably with custom units as we use mm for the drawings, but would want the area in m2. Also custom text heights.
I can find a lot of 'put the area in the middle' scripts, but they're either not dynamic or they require a click to place each one - and with over 700 floorplans and over a hundred or more rooms on some, it's not really possible to do each one individually!
I'd like to set up a blockwith different attributes like Roomname, Floor, Area,...
Therefore I'd like to link a polyline of the drawing with the block and it shows me its area. I know how it works with fields, but not how to connect it when the field is within a block.
I create a lot of fields that reference a polyline area and I'm constantly having to change the default formatting values. I would like it to default to an Architectural format, WITHOUT the appended "SQ. FT." (which often takes up too much space), with a precision of 0 and using a comma as the Thousands Separator.
Due to modeling purposes, I need to convert a 3D polyline to a spline. What I have been doing is:
- change polyline fit/smooth to cubic from properties - convert polyline to spline by typing spline -> object - method -> fit from properties
You can see the original 3D polyline (green) and the resulting spline (magenta) in the attached drawing.When I zoom in and measure the distance between the two entities at different points along them, at some points the perpendicular distance exceeds 5 millimeters, and I want to ensure the deviation remains under 1 millimeter or even less.
I know I can change the knot parameterization of the spline, and this does work at some locations, but the difference increases at others.Why is there a 5.6 mm difference between the spline fit point and 3D polyline vertex, as measure in the attached drawing?
Now, I can go and manually stretch the fit point to coincide with the vertex. Also, I can add fit points between existing ones to drag the spline closer to the original 3D poly.
However, some of my polys are really long, and it is very time-consuming to do this manually while measuring points along the entities to make sure the distance stays small enough.
how to automate this process? For example a lisp that would maybe take the original vertex points, add say maybe 3 (not too many) new ones between them, and then generate a spline while making sure the deviation is less than the set value of 1mm? I am using AutoCAD 2013.
make a LISP that will work with my room dimensioning? I'd like to be able to specify the width and depth of the room using a command similar to the "dist" command, and then click a point to place a text based on the distances gathered. I'd also like the text to be formated into architectural units and displayed like this: 12'-0" X 13'-5". Also, if possible, round the result to the nearest inch (to avoid 1/2" and 1/4" dimensions).
I have mtext in several drawings that contains an error that'd I'd like to fix using Lisp. An example of what this text should look like is:
NOTE:
SEE DRAWING XXXX FOR DRIVE DETAILS
The fist problem is that all of the text after the note has a width factor of 0.1 and is all squished together. The second problem is that the text height of the title (the "NOTE:" part) is supposed to be larger than the actual note (the "SEE DRAWING XXXX FOR DRIVE DETAILS" PART). Is there a way to fix this using lisp? I had a lisp in progress (not done) which is:
I have a routine, developed for me through this forum, that selects text or mtext, converts to mtext if not already, and puts a background mask with 1.1 border. I was using it fine in Map 3D 2007, but have recently switched to Civil 3D 2012 where it does not work. I get this error message:
; error: no function definition: VLAX-ENAME->VLA-OBJECT
Why does this not work in 2012? How to get it to work?
I would like to write a routine to resize the MText limits box to the minimum size required to cover the text, for background masking purposes. From the DXF codes, I see that I can simply set code 41 to match code 42 in order to set the width. However, I cannot seem to figure out how the vertical dimension is defined. (entget) shows no change in the DXF codes after I resize the mtext box.
I do know how to figure out the height that I need, using (acet-geom-textbox), but I can't seem to figure out how to apply this height the MText entity.
The multileader should end up on the same layer as the Mtext. (Currently it uses the current layer.)The multileader should hold the same rotation as the Mtext. (Currently it goes to zero.)The multileader should be created in the same location as the Mtext, without the user having to click. (Currently the multileader is created wherever the user clicks.)The multileader should be created without a leader. We can add one afterwards if needed, but for many we don't need a leader. (We're just using the object as mtext with a box around it.)
I'm finding Mleaders with Mtext don't seem to play well with command calls. All works fine until one tries to enter the mleader text. Before testing this, be sure your mleader style is set to use mtext. I recommend starting the leader with the arrow first.
Compare this mleader's text entry behavior in this basic lisp command call:(command "_.acad_dim.mleader") with the following routine that relies on an open ended command prompt (useful if you want to add more commands after calling the mleader command):
I'm having issues with updating an MTEXT attributes value using lisp.
If I insert my block (this is a titleblock) and run my lisp routine the MTEXT attribute updates fine. Once I edit the MTEXT attribute with the MTEXT editor, and then run my lisp routine again, the MTEXT attribute will not update anymore. All the single line (DTEXT) attributes update fine. The lisp routine I created has worked for years...this is the first time I've tried it with an MTEXT attribute.
In my drawing I have lot of MTEXTS having unwanted spaces in between the text strings.
A lisp to remove space from MTEXT. Here i am attaching sample drawing with MTEXT which is to be modify. Magenta color MTEXT need to modify like yellow color MTEXT.
I have a series of boxes or polygones that I would like the program to find the 1/2 distance and create two seperate polylines from the one object.
Example:
I have a square with pt1,pt2, pt3 and pt4 respectively. After I have ran the program it would create a diagonal from pt1 to pt3 and join the rest of the lines now to create the one polyline. Also it would do the same to create another exact polygonal shape for the other half. Thus creating two shapes of equal value from one.
I am looking for an alternative to in place XRef Edit.
The third party software I am stuck with has disabled in place editing an Xref.
The specific application I need is to allow the user to move an intelligent room tag that is XReffed into discipline specific models. Disciplines are Architectural, Mechanical, Electrical..Etc. Each discipline has their own room tag and needs to move their own tag to a location that can be clearly seen on their finished plot. Xref edit in place is the perfect tool for this..But since the third party has disabled the command, I need an alternative method.
I’m trying to put together a loop for if nil or something other than text or mtext is accidentally selected than prompt text was not selected. This is what I have so far.
I am wanting to use autolisp to access the text in a MTEXT entity. assoc(1) gives me the first bit of text, but not the rest.Is there a way to use assoc to access each of a number of matches or do I need to write my own routine to find all the 1's?