Catia VBA (replace-command schreplace) - vba

I'm trying to develop an assembly which uses contextual link... But stuck up at a point where I need to replace a existing axis system with new axis system. I came across a command from object browser - schreplace... Can someone assist me over this or advice me on the same
The options comes when part is active inside an assembly after which right click an axis system and select replace in order to replace it with another axis system

The Replace command is not supported in the automation interface (VBA).
Since you are in charge of the assembly, it is possible to work around this using some tricks.
One way is to add an isolated (datum) axis system to your part, then use the formula editor (creating a formula) to set it equal to your contextual one.
In your part do ALL your construction from this datum axis system. Don't use the copy-pasted one for any purpose except as input to the formula.
Now if you want to use a different axis, copy-paste-with-link the new one into your part, and then change the formula to refer to the new copy. The downstream geometry will then update. This is all doable in VBA.

Related

Visio shape (Gantt Bar) not updating with automation

I'm trying to automate the updating of some GANTT bars with a button setting the beginning date at 2w before now and ending date at 10w after now.
Problem is that it actually work and changes the data for the shape but doesn't update the visual. When I right click on the shape, open the parameters modification, select then unselect any parameter and validate, it actually update the visual, without any modification.
Do someone have an idea why this happen ?
I haven't found anywhere the same problem on internet except on a topic 19 yo with no response.
I'm using
Application.ActiveWindow.Page.Shape.ItemFromID(myID).CellsSRC(visSectionUser, 1, visUserValue).FormulaU = "NOW() -14ed"
Application.ActiveWindow.Page.Shape.ItemFromID(myID).CellsSRC(visSectionUser, 2, visUserValue).FormulaU = "NOW() + 10ew"
also tried with FormulaForce.
Thanks for any help
Gantt chart diagrams are controlled by an addin that is built-in to Visio. This addin controls most aspects of the diagram and Microsoft don't publish details of its internals. Looking at the Actions cells you can see that the Edit Date command performs action:
RUNADDONWARGS("GC","/CMD=2610")
This might do all kinds of things internally.
Good luck.

how to update diagram after change in Chart in visual paradigm 10?

I am trying to draw process of my company in visual paradigm 10.
at first, I draw a chart of organization and then refer to the chart I created all the diagrams. now I want to change the chart of our organization, for example, the name of some unit. I want to update all lane based on these changes. how can I update all process diagram ?
The simplest way is to make the change using Find and Replace dialog (Ctrl + F). In the Find and Replace dialog you can limit the scope to only work on the Organization Unit and BP Pools/Lanes to avoid making unintended changes to other model elements.

add data layer from mxd table of contents in custom arcmap toolbox

Can't find any references for how to add a data layer into a custom toolbox that I made in ArcMap via a dropdown menu instead of navigating to the file location.
The first picture is what the input for my tool lookslike, and the second is a screen shot of the Clip tool which has the dropdown options.
You have not set the parameter type in the script input parameters. This cannot be controlled in the script that you created, but has to be done in the tool (within ArcMap).
For this specific case, I believe Feature Class is the parameter type that you want (if not, Feature Layer -- I honestly haven't done this in ages, and there are quite a few options!)
You can also set options such as whether or not the parameter is required.
See Esri help pages for full details: Setting script tool parameters and Understanding script tool parameters.

Accidental use of built in function as variable name?

I have been writing some VBA code to produce charts automatically, and at one point named a variable "CHARTTITLE" not realizing that this is a member of the Chart object. I have deleted this variable upon realizing my mistake. However, since doing so, wherever I employ something like
Charts(1).ChartTitle.Text =
It will automatically auto-capitalize to
Charts(1).CHARTTITLE.Text
I have tried search and replace over the entire project from .CHARTTITLE to .ChartTitle to no avail. I have also tried employing Option Explicit also without effect. I am worried that there is now some sort of memory issue or that I've overwritten something important. Is there any way to reset this back to its default state?
It's a benign effect and it's a long-standing bug relating to the way that VBA stores itself internally. A couple of things to try:
Change the first occurrence of CHARTTITLE in the module, or if in multiple modules in the first module that appears in the project explorer.
Export the module, remove it from the project, edit it using your favourite text editor and reimport it.

Set breakpoint in VBA code programmatically

I have a very large piece of code written in VBA (>50,000 lines - numerous modules). There is one array of interest to me, and I'd like to find all the conditions under which the value of any element of this array changes. The values can change in any module. Running the script line by line is not the most efficient option due to the size of the code.
I am looking for better ways to solve this problem. Two ways that come to my mind is to programmatically set a breakpoint (which I am not sure if can be done) or programmatically insert an if-block after each assignment that somehow alerts me that the value has changed. (not preferred).
So my question boils down to:
Is it possible to programmatically set breakpoints in VBA code?
If the answer to the above question is No, what is an efficient way to solve this problem?
UPDATE:
Thanks for the comments/replies. As I had implied, I am interested in the least amount of modification to the current code (i.e. inserting if-blocks, etc) and most interested in the break-point idea. I'd like to know if it's doable.
Use the keyword STOP to break te code if a certain condition is true.
There are Two Ways to do that:
Use Stop Key word. Example as given below, set a break point at Stop
if (x = 21 ) Then
Stop
End If
Using Add Watch
Go to Debug -> Select Add Watch
NB:I know this is an old topic but this could help others.
You could use Watches:
Right click on the variables you wish to monitor -> Add Watch...
In Watch Type: 'Break when value changes'
While you run your code, you can check the status of your Watches thanks to the Watch Window (accessible from the 'View' menu)
in the hope someone can benefit from this :
In such situations regardless of the programming language used - writing a few lines of code either in Perl, AWK or even shell scripts can solve the problem :
search for a regular expression containing the array name (ignoring case).
Once you export all modules and classes in the Workbook(s) into a given directory - the scripts can search those for you.