Search the Community
Showing results for tags 'update'.
-
Hi All, Following an idea posed in this thread, I have created the following code to enable a user to automatically update titleblock attributes using data sourced from a CSV Drawing Register, a file which may be created using the DataExtraction command. The code is designed to be as generic as possible to benefit the majority of users. The location of the CSV Drawing Register may be entered at the top of the code, or this may be left nil (current setting), in which case the user is prompted for selection of a CSV Drawing Register from which attribute data will be sourced. The code also comes equipped with an optional block filter, located at the top of the code. If nil, the code will update all attributed blocks with attribute tags matching those listed in the headings of the CSV Drawing Register. The block filter may also use wildcards: e.g. "*BORDER". An example of the expected format of the CSV Drawing Register is as follows: +------------+-----------+----------+----------+-----+----------+ | DWG | Layout* | TAG1 | TAG2 | ... | TAGN | +------------+-----------+----------+----------+-----+----------+ | Drawing1 | Layout1 | Value1 | Value2 | ... | ValueN | +------------+-----------+----------+----------+-----+----------+ | Drawing1 | Layout2 | Value1 | Value2 | ... | ValueN | +------------+-----------+----------+----------+-----+----------+ | Drawing2 | Layout1 | Value1 | Value2 | ... | ValueN | +------------+-----------+----------+----------+-----+----------+ | ... | ... | ... | ... | ... | ... | +------------+-----------+----------+----------+-----+----------+ *Layout column is optional. Where the first column contains drawing filenames (with or without extension). The second column is an optional 'Layout' column for drawings containing different titleblock information on different layouts. Change the setting at the top of the code if the CSV Drawing Register contains a Layout column next to the Drawing Filename Column. The remaining columns contain the corresponding values of those attribute tags listed in the first row. A Short Demonstration The code is currently geared to run upon being loaded to enable users to add the code to either the Startup Suite or ACADDOC.lsp (see here for information about doing so), and hence automatically update titleblock attribute information whenever a drawing file is opened. This 'autorun' functionality can easily be disabled as described in the code header. Please read the code header for more information, and, if you have any questions about the code, please don't hesitate to ask. Regards, Lee A full description of the program including example CSV Drawing Register demonstrating the correct format can be found here. UpdateTitleblockV1-9.lsp
- 62 replies
-
- attributes
- drawing
-
(and 3 more)
Tagged with:
-
Adding Dynamic updating to text change LISP? Thanks
tmelancon posted a topic in AutoLISP, Visual LISP & DCL
Hey guys I found this LISP routine that allows me to change text in a drawing to anything I specify. Works great, however. My question is how do I code in here so the text updates dynamically as I click on them, instead of dashing them and waiting for user to hit enter for the changes to appear. (defun c:req ( / v1 v2 v3 newtx nme oldtx) (setvar "cmdecho" 0) (prompt "\nPick text to be changed.") (setq v1 (ssget '((0 . "TEXT")) )) (setq newtx "REQUIRED") (setq newtx (cons 1 newtx)) (setq v2 0) (if (and v1 newtx) (while (< v2 (sslength v1)) (setq nme (ssname v1 v2)) (setq oldtx (assoc 1 (entget nme))) (setq v3 (entget nme)) (entmod (subst newtx oldtx v3)) (entupd nme) (setq v2 (+ v2 1)) ) ) ) -
reactor Reactor; CallBack func; error: Automation Error.
costin calin posted a topic in AutoLISP, Visual LISP & DCL
Hello, I have two reactor and two problems in callback functions. I have inserted same princ to be evident where is the error. Outside (from CallBack func reactors) they works properly. It seems that some LISP function are not compatibile to work in callback func (vlax-ename->vla-object, vla-update). My callback func.: - AppendBkAreaLst - when I copy an object included in _AreaBkLst, must add the new one to reactors : execution broke on line :(setq obL(vlax-ename->vla-object(entlast))) : message> 1 <Entity name: 1edac8b6420>2 ; error: Automation Error. Description was not provided. - CopyAreaBkReactor - when I modify a DynBlk parameters, update the area field attribute : execution broke on line: (vla-update ob) : message>!begin! ; error: Automation Error. Object was notifying : although, the field are updated, but report an error _AreaBkLst - global var - a lst with dyn blks ;------------Setup Reactors----------- (setq ModifyAreaBkReactor (vlr-object-reactor _AreaBkLst "ModifyAreaBkReactor" '((:vlr-modified . UpdateBkArea)))) (setq CopyAreaBkReactor (vlr-object-reactor _AreaBkLst "CopyAreaBkReactor" '((:VLR-copied . AppendBkAreaLst)))) ;------------Functions---------------- (defun AppendBkAreaLst (ob re Rlst / obL) ;at >COPY add new Blk to reactor /Callback fun (princ "1 ") (princ(entlast)) (princ "2 ") (setq obL(vlax-ename->vla-object(entlast))) (princ "3 ") (vlr-owner-add ModifyAreaBkReactor obL) (vlr-owner-add CopyAreaBkReactor obL) (princ)) (defun UpdateBkArea (ob re Rlst / ) ;when modify parameters- update area field /Callback fun (setq BC(BlockComponents (vla-get-name ob) "")) (setq obS(vlax-ename->vla-object (nth 5 bc))) (setq Area (vlax-curve-getarea(car BC))) (vla-put-TextString obS Area) (princ "\n!begin! ") (vla-update ob) (princ "ok")(princ)) (defun BlockComponents ( blk typ / ent lst ) ;lst all enteies inside blk (setq typ (strcat typ "*")) (if (setq ent (tblobjname "block" blk)) (while (setq ent (entnext ent)) (if (wcmatch (cdr (assoc 0 (setq enx (entget ent)))) typ) (setq lst (cons ent lst))))) (reverse lst))-
- fields
- dymamic block
-
(and 1 more)
Tagged with:
-
Hello, I am moving a number of people to a new version of civil 3d. I'm looking for timelines others have used to transition to a newer version as I have encountered 'hesitation' in the past. Any and all insight and experience is appreciated. Thanks, Phil
- 5 replies
-
- update
- transition
-
(and 2 more)
Tagged with:
-
Update Paperspace View from Moved Model Space Object
eric_monceaux posted a topic in AutoCAD Drawing Management & Output
Hello Everyone!!! I am having a hard time searching for this request, as I am unsure how to even begin. Hopefully you guys can assist me. What I would like to do is: There are times when I draw in modelspace, I get a little sloppy as far as organizing plans, elevations, and details. Some of it is due to poor planning while other times the drawing details will expand more than I had anticipated. Usually this happens after I have already set up my views in paperspace. What I am trying to see if it is possible to move modelspace objects and be able to quickly update the paperspace view because reorganizing can be tedious. Any pointers or info (other than be more organized) would be wonderful!- 8 replies
-
- paperspace
- mview
-
(and 2 more)
Tagged with:
-
Need help updating TEXT within BLOCK ATTRIBUTES. HELP!
tmelancon posted a topic in AutoLISP, Visual LISP & DCL
When I generate a new drawing it creates a text file with information. Autocad updates text automatically from this file using specific layers that the string is on in the drawing. Depending on what layer a string is on, that will determine what information it is updated with. With that being said, it will not update ATTRIBUTES within a BLOCK. Can someone help. I am willing to discuss and assist with figuring this out. I will be automating some information for my titleblocks and ALL of our titleblocks are blocked with attributes. Here is the code used to update the info (defun uinfo () (princ "\nUpdating Drawing Information...") (if (= found 1) (progn (setq dummy (read-line infile)) (setq desc (read dummy)) (setq dummy (read-line infile)) (setq drawing (read dummy))) (progn (setq desc '(1 . "- NEW EQUIPMENT -")) (setq drawing '(1 . "- UNASSIGNED -")))) (setq sset (ssget "X" (list (cons 0 "TEXT") (cons 8 "TITLE")))) (setq lp 0) (while (< lp (sslength sset)) (setq ent (entget (ssname sset lp))) (setq entinfo (cdr (assoc 1 ent))) (if (= (substr entinfo 1 4) "Desc") (entmod (subst desc (assoc 1 ent) ent))) (if (= (substr entinfo 1 4) "Draw") (entmod (subst drawing (assoc 1 ent) ent))) (if (= (substr entinfo 1 3) "Dwg") (entmod (subst drawing (assoc 1 ent) ent))) (if (= (substr entinfo 1 4) "DESC") (entmod (subst desc (assoc 1 ent) ent))) (if (= (substr entinfo 1 4) "DRAW") (entmod (subst drawing (assoc 1 ent) ent))) (if (= (substr entinfo 1 3) "DWG") (entmod (subst drawing (assoc 1 ent) ent))) (setq lp (1+ lp))) (setq sset nil) (setq lp nil) (setq sset (ssget "X" (list (cons 0 "TEXT") (cons 8 (strcat tcircuit "-EQMRK"))))) (setq lp 0) (if (/= sset nil) (while (< lp (sslength sset)) (setq ent (entget (ssname sset lp))) (setq entinfo (cdr (assoc 1 ent))) (if (= (substr entinfo 1 4) "Desc") (entmod (subst desc (assoc 1 ent) ent))) (if (= (substr entinfo 1 4) "Draw") (entmod (subst drawing (assoc 1 ent) ent))) (if (= (substr entinfo 1 3) "Dwg") (entmod (subst drawing (assoc 1 ent) ent))) (if (= (substr entinfo 1 4) "DESC") (entmod (subst desc (assoc 1 ent) ent))) (if (= (substr entinfo 1 4) "DRAW") (entmod (subst drawing (assoc 1 ent) ent))) (if (= (substr entinfo 1 3) "DWG") (entmod (subst drawing (assoc 1 ent) ent))) (setq lp (1+ lp)))) (princ "Done.") (prin1)) Here is the actual routine used to provoke the update of all information in the drawing based on its respective layer. (defun C:UPDATE () (setvar "CMDECHO" 0) (setvar "MENUCTL" 0) ;; (command "._snap" "0.03125") (command "plinewid" "0.0") (if (null filename) (setq filename (getstring "\nPath and name of update file: "))) (if (null tcircuit) (progn (C:EQUIP2)) (progn (makenames tcircuit) (checklayers tcircuit))) (if (null tcircuit) (progn (princ "\nCurrent name has not been established") (princ "\nplease type EQUIP and establish current equip. or make new")) (progn (openfile) (seek-tcircuit) (if (= (getvar "userr1") 0.0) (setvar "userr1" 3.0)) (if (= (getvar "userr2") 0.0) (setvar "userr2" 1.0)) (if (ssget "X" (list (cons 8 "CIRCUIT-INFO") (cons 0 "TEXT"))) (uinfo) (repeat 2 (read-line infile))) (if (ssget "X" (list (cons 8 "TITLE") (cons 0 "TEXT"))) (udates) (repeat 2 (read-line infile))) ;; (uinfo) ;; (udates) (if (= found 1) ;; (progn (udp) (uext) (uldar) (uvalve)) (princ "\nNO INFORMATION TO UPDATE")) (closefile))) (command "._-layer" "s" PIPING "") (princ)) I need to add to the code so that it will update the defined text strings of attributes within a block. IF you have any input or any questions I would appreciate everything. -
FINALLY!! Tutorial of Audi R8 with Solidworks has been uploaded !!
thelostelite posted a topic in SolidWorks
Congratulations Guys !! , We've finally done what we promised you and uploaded the whole videos of the tutorial of creating Audi R8 with Solidworks through which you can MASTER Solidworks Surfacing and complex shape modeling THIS tutorial is only can be found on our blog and you will never get disappointed by the lack of surfacing tutorials , In this tutorial you won't feel frustrated anymore for the hardness of using Solidworks Surfaces , Step by Step you can gain the experience to do anything with this tutorial , This tutorial is 14 hours with a good resolution , it's 53 videos of continuous complex modeling !! ,It's the only online tutorial for complete solidworks surfacing , so you must watch it !! HERE'S THE Youtube Playist LINK : http://goo.gl/HaajfX ATTENTION !!!!!! : to understand the tutorial you MUST download the images from my imgur : http://goo.gl/tJZpf5 (No ads) and don't forget to subscribe to my Youtube channel and begin this tutorial with your college mates subscribe here to get more videos : http://youtube.com/subscription_center?add_user=LostEliteGuy-
- surface
- solidworks
-
(and 3 more)
Tagged with:
-
I used to be able to update a part, save it and then the assembly would automatically update. This is no longer happening. Is there a setting somewhere that I have to change? When I close the assembly and re open it asks if I would like to update then. I feel like I shouldn't have to close an assembly each time I make an update to a part. Thanks in advance Dave
-
Hi, Recently I've gotten into this type of problem. Have an ATT "A" that is set. I can change it and it will change. But I also have an ATT "B" which works the same way as the "A". I've added a MTXT into the block so that both ATT's A and B will work together, meaning they will always be in a dead center - something like text (no matter what the string is, you can Align it Middle Center), using a FIELDS option, and parameter set to VALUE. It works when placed into the drawing, but need something that once I place the block and want to edit the VALUE, the Fields will update/sync. I'm asking for some guidance from you guys. Thank you in advance for the help. Vee A and B.dwg
-
HELP: Moving DWG's physically & updating an existing SheetSet
shichae posted a topic in AutoCAD Drawing Management & Output
I'm in the process of moving 100+ dwg files physically, but cannot figure out how to update the drawing locations w/o recreating a Pre-Existing fully populated (names, drawing numbers, etc.) SheetSet. Here's what I want to do: Move dwg files from one location to another & update the new physical location (Expected/Found/Relative/Full/UNC Path) in a copy of an existing dst. I've tried moving the files, then updating the Expected Path from within the SSM, but this works on a file to file basis, and takes a long time to perform on a 100+ drawing SheetSet. I've tried using SSMPropEditor, but for some reason, the changes do not stick. The only way that I've found to accomplish this is to use the Archive function (as a folder instead of a ZIP file) from within SSM, but there has to be an easier way to do this... Thanks in advance, and have an excellent day! BTW: I'm using ACAD 2010 on a Core i5 XP machine.- 2 replies
-
- ssm
- sheetset manager
-
(and 3 more)
Tagged with:
-
Multileader Block Attributes and Style Overrides
CyberAngel posted a topic in AutoCAD Bugs, Error Messages & Quirks
I need to use detail callouts on a regular basis. They all have to look the same, even though some appear in paper space and some in model space. I've gone to a user block. The attribute style has a width factor of 1.25. I overrode it in the block and changed it to 1.00. When I draw a multileader with this style, the block has text with width of 1.25. AutoCAD has overridden my override. On a similar note, when I change the multileader definition from the default _DetCallout to the user-defined DetCallout (note the underline), the existing multileaders don't update, and I can't figure out how to make them update. Is it a bug, a quirk, or something else? Does it really matter what you call it if they never fix it?- 2 replies
-
- multileader
- block
-
(and 2 more)
Tagged with:
-
Mleaders text alignment to UCS?
chulse posted a topic in AutoCAD 2D Drafting, Object Properties & Interface
I have an old project where the mleaders were all created in WCS and aligned to it for a preliminary plan set. Now that the plan has progressed to CDs (over a year later) they have rotated the views to a new alignment for the final plans. I'd love to not have to re-do all my mleaders in the new UCS to match the new alignment. Has anyone found a way to update existing mleaders to follow a new UCS? Any help greatly appreciated. Thanks -
Changing Printers Names for multiple layouts
flexifloat posted a topic in AutoLISP, Visual LISP & DCL
I have searched wide a long and have not found what I am looking for and I know you guys have the simple answer. We have changed our printer naming convention and I(we) need to update about 10,000 drawings. We have 4 default printer names and need to step through each layout and replace the old printer name with the new one. I wasn’t to create a lsp routing that we can add/run at startup and just update all of the layouts as needed model included. Eventually we will incorporate this into a script and parse all of the files in a directory an let them run. For now we will settle for the manual process as we open existing drawings Thanks for your help -
Y'all, I'm coming back to AutoCAD2010 after a 4 years of using Vectorworks and am trying to make sense of Blocks, which I am assuming have the same(ish) properties as Vectorworks symbols. Specifically I would like to know how to have a single block that lives in a "root" file that is referenced and "live" in multiple files. i.e, 1 site boundary block that can be referenced into multiple files and then updated accross all the files it is referenced into by editing the original site boundary block in the "root" file. Is this possible? Is it called some other kind of block? Cheers, Z
- 2 replies
-
- referencing
- live
-
(and 3 more)
Tagged with: