Author Topic: make block unscalable  (Read 1734 times)

0 Members and 1 Guest are viewing this topic.

Peter Guappa

  • Guest
make block unscalable
« on: April 15, 2014, 11:35:06 AM »
Hi,

I want to make a block unscalable. Is this possible with lisp?

With (vla-put-Explodable blockname :vlax-false) I can make it unexplodable, but I don't know how to make it unscalable.

Thanks
« Last Edit: April 15, 2014, 02:41:03 PM by Peter Guappa »

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: make block unscalable
« Reply #1 on: April 15, 2014, 02:39:18 PM »
To my knowledge this can only be done with reactors.

irneb

  • Water Moccasin
  • Posts: 1794
  • ACad R9-2016, Revit Arch 6-2016
Re: make block unscalable
« Reply #2 on: April 16, 2014, 01:26:16 AM »
Yes, and due to reactors only working if they're loaded - these "unscalable" blocks will only be unscalable on the workstations where you installed the reactor. Every other PC / ACad install will still be able to scale them without any issue.

The closest you can get is to make the block annotative, though that's more like the opposite of unscalable -> more like automatically scaled.

Unfortunately these sort of things only work if ADesk adds the feature into the acad program itself so that everyone's acad works the same way. And even then older versions or clones like BricsCAD would not adhere to this setting (most probably).

Edit: Just a query ... what are you actually after? Might it be useful to place the blocks on a locked layer?
Common sense - the curse in disguise. Because if you have it, you have to live with those that don't.

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: make block unscalable
« Reply #3 on: April 16, 2014, 08:48:22 AM »
Attached is a very basic, but functional, reactor example.

The demo will force all block references that are created or modified to have an X, Y and Z scale that is equal to 1. You can use Xdata, extension dictionaries, dedicated layers or a naming scheme to allow the application to distinguish between block references and only change certain references. An onload check should also be added.

The demo is a modified version of the code that can be found here:
http://www.theswamp.org/index.php?topic=42826.msg505544#msg505544
« Last Edit: April 16, 2014, 08:51:23 AM by roy_043 »

Peter Guappa

  • Guest
Re: make block unscalable
« Reply #4 on: April 16, 2014, 09:49:33 PM »
Thx!!!

I will have a look at it this weekend

Peter

dgorsman

  • Water Moccasin
  • Posts: 2437
Re: make block unscalable
« Reply #5 on: April 17, 2014, 10:23:05 AM »
Might be possible, using ObjectARX to create custom objects of those blocks which obscures the scale factor.  Still, that's a lot of work for not much gain.
If you are going to fly by the seat of your pants, expect friction burns.

try {GreatPower;}
   catch (notResponsible)
      {NextTime(PlanAhead);}
   finally
      {MasterBasics;}