AutoCAD .NET :: Display Inserted Blocks While Inside A Loop?
Sep 18, 2011
I am asking the user to select points and insert a block at each of the selected points. On user exit from the point selection I draw a polyline connecting the blocks.
However, I cannot get the already inserted blocks to display until I complete the insertion of all blocks. How do I go about getting them to display as soon as they are inserted? The code segment below is inside a transaction and nothing appears on the screen till this transaction is committed' Pt(0 to 2) is defined as a double and is returned when the user selects a point with function
SelectPoint Do While SelectPoint(Pt) = True Dim MyPoint3D As New Point3d(Pt(0), Pt(1), Pt(2)) InsertBlockAtPoint(MyPoint3D, myTransManager, strBID, _ myBlockTable, CurrentBlockSpace, dwg, True)' strBID is a previously populated structure containing data about the block insertion details and Xdata to be added to the block reference Dim MyPolyPoint3D As New Point3d(Pt(0), Pt(1), 0) myPoints.Add(MyPolyPoint3D)' myPoints is a data set used to plot the polyline
I created a block w/ attributes for my border and saved it for future use on other drawings. But when I insert it, even if the units are the same the blocks I inserted scaled smaller than the actual border that i wanted it to be.
I have a simple 3d object animation - it rotates over 1 second. The movie has 1 second. When played, it rotates in a loop.
I've converted the 3d layer into a smart object. The smart object animation timeline has 5 seconds, but the nested 3d object rotates only once and then stops. How to make the internal 3d animation loop inside the smart object?
I've created my first dynamic blocks...but when i insert them into my dwg they are way off in space. i've tried selecting a base point in the library file. and i've tried using INSBASE 0,0,0 but no luck. my dyn block is made up of several individual blocks.
We are having a problem with blocks not appearing after xreferencing a drawing. We can place blocks as normal from the tool palette, but as soon as we xreference a 2D site plan and select blocks from the tool palette, they will not place. You can see them when placing, but once you click to place it, the block does not appear. I have copied out the site plan to a new dwg file, still does the same thing. Everything has been purged and ran an audit in the plan drawing and also the site plan drawing. The block does not show up in the block editor either. I am trying to avoid redrawing the site plan like we had done with two models that were doing the same thing. Remodeling a vessel and rebuilding a skid composite corrected the problem with two other drawings, but redrawing this site plan would take considerable time.
I have created simple dynamic block for plan section call outs. If I use comment INSET to put this block in my file ever thing looks ok but if I dropped from tool palette block is srewed up. See attached CAD file.
The code below collects empty blocks with the intent to delete them.However, it appears that if an Xref is currently 'unloaded' it apparrently collects that too. I could probably just test to see if the block is an Xref and avoid it... but how could I modify this to check if it is loaded and still empty?
I'm using a blocklibrary, where I stored all my blocks, most of them have attributes.
Now I'd like to simplify my workflow and want to update the blocks that I inserted in a drawing trough LISP.
Is there a way to update all inserted blocks and attributes of the whole drawing a once? The idea is, that the LISP checks the whole blocklibrary and updates the inserted blocks that to not match with the once from the library.
I'm looking for an easy way to generate a on-line riser diagram of blocks that have been inserted on a floor plan.Here's what I was thinking.
For every instance where the block SLC_DEVICE IS insert on the drawing, the routine would insert the block listed in the "TYPE" and place text equal to what is listed in the "ADDRESS". The TYPE is the actual block name.
Each one of these blocks have a tag of TYPE and ADDRESS. What is in the TYPE tag is the block name of what should be inserted and what is in the ADDRESS tag is the text that should be inserted under the block.
So for example; the routine would find the first instance and the tag TYPE which is "Smoke_Detector" and the tag ADDRESS which is 01:03:001. The routine would insert the block "Smoke_Detector" with the text "01:03:001" directly under it. It would insert the next instance the same way a specified distance from the last; so on so on so on until all instances of the BLOCK (SLC_DEVICE ) have been inserted.
The other part of this would be the Block "NAC&SPK_Circuit" but you would use the Tags "Type", "Candela" AND "NacCkt" to generate the one liner.
I've made annotative blocks and I've made dynamic blocks... My intent is to integrate both but I can't find a way to move dynamic block parameters separately at different annotative scales.
In other words, if I insert an annotative dimension and add multiple scales I can move the dimension grips independently at each scale. If I insert a dynamic block I want to be able to use the dynamic block's action "grips" to do the same. However, with a dynamic block, if I move a stretch action at one annotation scale it moves the action at all annotation scales.
I'd like to know the alternatives in 3ds Max to these popular tools:
1-When you have selected an edge loop, let's say, on a plane, how to select the polygons inside that loop? At the moment I'm using the split tool as a (very bad) workaround.
2-When you have selected some polygons, how to select the edges on the "boudndary"? (kinda the opposite of the above) At the moment I'm using the detach as element and border selection as a (very bad) workaround.
Is there any way to export blocks INSIDE of another dwg?
Background info:
At my company, we have a series of template .dwgs that get copied every time a new project is created. We update the template files as we create new blocks, styles, etc...
When I'm working in a specific project and create a useful block, it would be nice to export that into the template file without having to open the template drawing and insert/redefine it.
At each projects, i need to copy and paste the values of attributes of all instances of a type of block in my drawings, paste them in a excel sheet, it take so much time and is possible to make errors.
Is there hints to read a DWG as a text file and retrieve the attributes values of all these blocks ? I would give special names to these blocks, and also specific quantity of attributes, to work.
I meant Excel VBA, not AutoCAD VBA, cause i will manipulate excel sheets depending on the results.
Is there a way to put constraints on text and a rectangle? I'm trying to make a block so if i change the text the rectangle around it grows automatically. I know it's simple enough to just manually extend it but one of my engineers asked me to try and create this for him and i can figure it out.
I wanted to flatten arcs, circles and lines inside a block using the following lisp (which I found in this forum). I found that sometimes this lisp is unable to flatten the ARCs inside the blocks. I do not understand why it is not working for all the blocks. I have attached a drawing in which this lisp is not working.
I've made this block . when i rotate the vertical line I need to add lines every 15° as you see in the image, i've seen that polar array is not possible in the dynamic blocks.
There are many examples of creating rectangular patterns, but not many, if any, of interrogating existing patterns.I have attached the files and a screenshot of a rectangular part inside an assembly. The part contains a rectangular pattern of holes and workplanes.how do I get hold of each proxy of the workplane in the pattern?In other words I don't know what to put in the for loop at the end of this code fragment:
If _invApp.Documents.Count = 0 Then MsgBox("Need to open an the assembly document") ReturnEnd If If _invApp.ActiveDocument.DocumentType <> DocumentTypeEnum.kAssemblyDocumentObject Then MsgBox("Need to have an Assembly document active") ReturnEnd If Dim asmDoc As Assembly Document asmDoc = _invApp.ActiveDocument Dim asmDef As AssemblyComponentDefinition asmDef = asmDoc.ComponentDefinition im occurrences As ComponentOccurrencesoccurrences. [code]....
Seems like Multi-View Blocks are like that hot red-head in high school that you really want to get to know until you get to know them.
I made a bunch of blocks for my electrical plans. Annotative symbols for plan view, 3D blocks for model view, and elevation blocks for elevations. I then started creating the MVBs.
Upon insertion the annotative blocks appear super small and the model view blocks scale way up. The model view blocks are not annotative and are not supposed to scale at all. It seems MVBs see any block inside that is annotative as an indication that the entire MVB shall be annotative. Fustrated, I finally found a work-around that is a bit half-arsed:
I made another block as a sort of holder for the annotative symbols that was set to not be annotative and inserted that into the MVB. VOILA! the MVB itself doesn't scale, but the annotative symbol inside the non-annotative block does. This works fine except for one caveat: I can't edit attributes that are in blocks inside of blocks. If I made another block to use in the MVB for the attributes, it would work, so long as I don't make it annotative, which isn't what I want.
So, A) is there a better work-around than the block-in-a-block-in-a-multi-view-block method, or B) Is there a way to access and edit attribute data of sub-blocks inside a MVB?
Maybe my next thread will be about red-headed Multi-View Blocks with carpets that match the drapes.
I don't give the right keywords with Google !?So from a classic selection (or ALL for ALL Blocks of the DWG) of entities,
we will keep ONLY blocks (Static or Dynamic)I am looking for a Lisp/VLisp routine to update all Color of Hatches inside Blocks when the Hatch Color is xxx If the color hatch is NOT XXX we don't update !
The problem : update all hatch from blocks where Color = 255 (or any other value)
---> other classic Color (1-256) --> RGB Color 255,255,255 or any other
I don't know at all how to switch hatch entities from classic color to RGB color inside a Block..And dynamic block in Lisp/VLisp are far from my level 0.2 in Lisp ...
I need a lisp code to burst all "blocks with text/attributes inside" in selected area. That means user should select an area (window selection) and lisp program should be find all blocks with TEXT or ATTRIB inside in selected area and then applys "BURST express tools" command to all these blocks in the selected area by user.
I am having a problem with a bunch of existing drawings. The drawings displayed fine with Autocad 2009 but with 2010 the blocks have huge rectangles drawn around them. (so big they extend off the title block) We have a few machines running older versions and the drawings display fine but any machine with 2010 all displays these boxes.
I have some generic labels inside families to display parameters. These work but they seem to randomly disapear.
I thought it was only happening when families were joined as when I unjoined the offending families the labels were visible again but then after closing and opening the view some of the labels have disapeared again.
If I copy this family to a new location the labels will be visible.
I have a CAD file with property parcels in it. It has come from an external contractor and from a GIS program of sort sort I believe.
If you click each 'boundary'/land piece, it is a block/object (not a proxy graphic) and in the properties pane window, there are attributes that has the lot number, the lot area, parcel number, other info etc in it.
Each block is irregular and different, i.e. they are not all the same rectangle block repopulated, they are different blocks.
I don't know much about attributes in AutoCad althoguh after reading about them, is there some way to edit an attribute (make it not 'invisible' and to increase the text size of its display) when it is already in several hundred different blocks? The only way I could work out how to do it was to go into every block and do it.
I also tried using the ATTSYNC command to update blocks with attributes although that requires me to individually select each block/give each blocks name.
I also tried using the DATA EXTRACTION wizard and was able to extract the attributes into a table/excel file, although that is not really good enough as I need the attributes displayed over the CAD data so you can see what parcel of land the attributes are referring to.
Any better way or a lisp command to do this? Clicking each block/boundary/land unit to place a label over it would also be okay. I just don't want to have to manually create the labels from reading the property pane, there must surely be a better way,
I am trying to get back some of my work that was "lost" when a crash accured. I had 16 blocks (all the same) inserted into my map at the correct locations. I recovered the drawing but noticed that the blocks weren't displaying. I conducted a quick select for the layer which they're on; it stated 16 items were selected (but they are not displaying). While they are still "selected" I checked the properties & it stated all the correct information (quantity, block name, color, layer, scale, etc...). I made sure all layers associated with the block were not frozen. So it's acting as though they're still in the drawing, but aren't displaying...
I have this strange situation.. i use the Arial font inside my cad drawings and when i print my paperspace layout, the text inside the viewport is a little bit more "bold" then the text i put directly on paper space.
Maybe it's a trick to know what text is placed where, but i want all this to be uniform, same thickness. Is there a system variable to correct that issue?
See the image below: It's a 400 DPI scan from an impression i did.
Up to COUPE C1 is the text inside the viewport, under COUPE C1is the paperspace text. Both are the same height... but difference tickness.
I really enjoy this new draw inside feature in Illustrator. But, I find that it does not always work. It seems to be grayed out sometimes. For example, I have drawn a shape with my Wacom tablet using a blush. I then converted it to a shape instead of keeping it a stroke by expanding it. But it will not allow me to now draw inside of it, even though it is a shape.
I have a really large sphere and have put a camera on the inside to see the inside surface. I have used the normal modifier to flip the normals and so have the skin on the inside. Something is going very wrong at this point because I have this ugly shadow line that I cannot get rid of and I also seem to not be able to light this interior, when I use an omni light it makes no difference. Where am I going wrong?
Using 2011 Civil3D at the moment. Im trying to insert a PDF as an xref and once its in the model space, it won't let me rotate or scale the image. When clicking on it, the nodes in each corner do not appaear.