Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/21/2022 in all areas

  1. Or maybe get whoever created the initial program that makes these uneditable blocks to revise it so it doesn't create this problem. If a program is mimicking Autocad's abilities, is it too much to expect them to do it properly?
    3 points
  2. In the drawing you posted Standard was the only style, you could change the font to Swiss 721 Lt BT then use the RENAME command to change text style Standard to Swiss 721 Lt BT. You could also use Ctrl+X _cutclip to cut and paste the blocks you want modified to a new drawing and set just them to Swiss 721 Lt BT.
    2 points
  3. And there is another from Lee Mac. Attribute colour which you can also modify. Big hint for this on is to call it say, AttLW (for lineweight), you can modify the DCL box if you want (now or later) and then look to the line which changes the colour, uses something like (vla-put-color (cdr pair) *attcolour*) and you might guess that vla-put-lineweight does something similar, and maybe guessing that *attcolour* could be replaced by the line weight you want to use. Select all the blocks, run your new or modified LISP and hit the 'select all' button in the DCL and off it goes, lineweight as you want ...I'd still go with my answer above though for all the pieces of text. someone will be able to grab the text and past it into the blocks from their LISP libraries
    2 points
  4. Nice one, I tried like you said and it works. Thanks for your suggestion and thinking.
    1 point
  5. Replace the line (if (eq "AcDbPolyline" (vla-get-objectname obj)) With the line (if (and (eq "AcDbPolyline" (vla-get-objectname obj)) (< (vla-get-thickness obj) 0)) NOT tested!!
    1 point
  6. and finally, has anyone tried editing the block, adding 3 attributes, lets call them say PN, PD and ZC, then using attsync and see what happens?
    1 point
  7. Note that the sides of the groove are not exactly parallel. One side has a slope of 2/3 while the other is 0.673... (35/52) Rather than using a box to subtract create a closed polygon using the noted dimensions, extrude then subtract.
    1 point
  8. FORGET THIS ANSWER, SEE THE ONE BELOW "HAS ANYONE TRIED EDITING THE BLOCK TO ADD IN 3 NEW ATRIBUTES, CALL THEM PN.....". I RECKON THAT IS A QUICKER SOLUTION How much work do you want to do to correct this? I might be tempted to recreate the blocks 'properly' and copy in the text to each? You can perhaps create a new block (can be renamed later), say "NewDot" with the 3 attributes you want, PN, PD, ZC - should be a matter of moments and perhaps put in a simple default value for the attributes to let you select them after. Also for what I am dong below it might work to make them a specified colour (depends on the rest of the drawing, something that will stand out). You can change this later in the block definition the normal way Now all you need to do is make up a LISP to copy the text from one to the other..... So this will paste a block "NewDot" with the origin at the origin of your block "DOT"" (you'll need to make NewDot of course) (defun c:trythis ( / acount MySS MyEnt pt ) (setq MySS (ssget "X" '((0 . "INSERT")(8 . "POINTS")))) (setq acount 0) (while (< acount (sslength MySS)) (setq MyEnt (ssname MySS acount)) (setq pt (cdr (assoc 10 (entget MyEnt)))) (command "-insert" "NewDot" pt "" "" "") (command "_zoom" "_object" (ssadd MyEnt) "") (c:ctx) ;;SEE NOTE BELOW (c:ctx) ;;SEE NOTE BELOW (c:ctx) ;;SEE NOTE BELOW (setq acount (+ acount 1)) ) ) Lee Mac has a function, Copy, Swap Text, CTX (sorry, he has made some good stuff that works well), download that and you can 'ctx' each text from old to new to update your new texts, which is in the code above and the quickest copy-paste solution for now. In his code in the 'copyswaptext:main' function you have to disable a while loop to make this work as above Someone somewhere will have a LISP to grab the old texts (in each MyEnt above) and insert them in the new block, I don't have a quick solution for that today Anyway, fingers crossed this all worked and you now have 2 sets of blocks, Dot and NewDot, so just delete the original and see how that goes. Anyway, if someone has a LISP to take the 3 old values and paste them in the new block as it is inserted that would be good
    1 point
  9. It looks like that block was created programmatically?
    1 point
×
×
  • Create New...