What causes Panel Balloon links to break?

What causes Panel Balloon links to break?

dmoyer-act
Contributor Contributor
2,373 Views
11 Replies
Message 1 of 12

What causes Panel Balloon links to break?

dmoyer-act
Contributor
Contributor

I have encountered several projects now that when I return to the project to edit, modify or update panel drawings the balloons are no longer linked to the footprint item number (the ballon shows an different number than the footprint item number). This causes an amazing amount of unecessary rework! Obviously, the item numbers got resequenced at some point but the balloons were broke and didn't get updated.

 

When the balloon to footprint link is broken, it is broken for the entire drawing. However, not all panel drawings in the project are broken. The most recent case of this has 6 panel drawings that are still ok and 2 that are broken.

 

What causes this in the first place?

Is there a way to relink the balloon(s) without having to delete them all and reinsert?

0 Likes
Accepted solutions (1)
2,374 Views
11 Replies
Replies (11)
Message 2 of 12

rhesusminus
Mentor
Mentor
AutoCAD Electrical causes it 😉

Yes, they can be relinked, but via code. The link is only XDATA in the component, pointing at the handle of the balloon.

Trond Hasse Lie
EPLAN Expert and ex-AutoCAD Electrical user.
Autodesk Expert Elite Alumni
Ctrl Alt El
Please select "Accept Solution" if this post answers your question. 'Likes' won't hurt either. 😉
0 Likes
Message 3 of 12

dmoyer-act
Contributor
Contributor

Autocad Electrical 🤔

 

Perhaps I should've rephrased my question: How does one prevent Autocad Electrical from breaking the balloon links to the item number of a footprint?

Also, are you really advocating for users to edit the code to reassociate the balloon links? If yes, please do point us all to the procedure for doing this and how this is quicker than redrawing the balloons.

0 Likes
Message 4 of 12

rhesusminus
Mentor
Mentor
Could you share a drawing where the balloons are "disconnected" ?
Then I can see if it's possible to fix it using code (as in making a program).

It's impossible to guess exactly why this happens on your computer, but other users don't see this problem. Seeing the drawing might give some clue at least, to why it might happen.

Trond Hasse Lie
EPLAN Expert and ex-AutoCAD Electrical user.
Autodesk Expert Elite Alumni
Ctrl Alt El
Please select "Accept Solution" if this post answers your question. 'Likes' won't hurt either. 😉
0 Likes
Message 5 of 12

dmoyer-act
Contributor
Contributor

Thank you for the reply rhesusminus. Attached is a file that is broken.

0 Likes
Message 6 of 12

rhesusminus
Mentor
Mentor

The link between the balloon and panel symbol (block) is stroed in the XDATA in both symbols.

 

Here you can see that the button (Handle 84) points to the balloon with handle 948, via the VIA_WD_BALLPTR setting:

2019-12-16_18-43-48.png

 

And, here you can see the ballon (handle 948) pointing back to the panel symbol (Handle 84), via the same VIA_WD_BALLPTR variable. It also keeps its own handle in the VIA_WD_HDL setting.

2019-12-16_18-42-18.png

This is how AcadE knows what balloon belongs to what symbol.

 

Now, let's have a look at your balloon:

2019-12-16_18-41-23.png

As you can see, no handles match. 
The unique handle is kept through an entity's lifespan within a drawing. If you wblock something, and insert it into another drawing, they get new handles. It will NOT update the XDATA with the new handles.

There are other commands as well, that might break the handle/link.

 

So, unfortunately, there's nothing here that can be recovered automatically via code. Maybe a "re-link balloon" command would be slightly helpful?

 

 

 


Trond Hasse Lie
EPLAN Expert and ex-AutoCAD Electrical user.
Autodesk Expert Elite Alumni
Ctrl Alt El
Please select "Accept Solution" if this post answers your question. 'Likes' won't hurt either. 😉
Message 7 of 12

jtoverka
Advocate
Advocate
Accepted solution

This typically happens when you copy and paste the footprint and/or balloons from one drawing to another. I have tested this with both standard AutoCAD commands and AutoCAD Electrical commands, they both don't work. The xData stores these handles under dxf code 1000. Autodesk did not properly program this functionality. It should be dxf code 1005. I suspect they did this to account for multiple handles, hence the commas "," that you would typically see under VIA_WD_BALLPTR. However, I have only seen one handle per pointer. I have a program that will convert all of these dxf codes for balloon pointers from 1000 to 1005. This will allow me to copy and paste while maintaining the relationships between the footprints and its balloons. Then I run a program to convert the 1005 codes back to 1000 codes to allow AutoCAD Electrical to properly run programs using the Balloon pointers.

 

 

Dxf code 1005 is used for handles. So if you copy and paste blocks pointing to one another, the paste function will update the handles to point to the new blocks you have pasted. Thus maintaining these links. Dxf code 1000 does not have this functionality.

 

This is something that Autodesk should seriously fix because having to do ballooning for every new drawing set is seriously a time consuming process.

 

If you want auto ballooning, consider voting for it here:

https://forums.autodesk.com/t5/autocad-electrical-ideas/automatic-panel-balloon-insertion-drawing-wi...

Message 8 of 12

rhesusminus
Mentor
Mentor
You really should share your library of code 🙂

Trond Hasse Lie
EPLAN Expert and ex-AutoCAD Electrical user.
Autodesk Expert Elite Alumni
Ctrl Alt El
Please select "Accept Solution" if this post answers your question. 'Likes' won't hurt either. 😉
Message 9 of 12

jtoverka
Advocate
Advocate

It's all AutoLISP not C#.

But I am open if you wanna share that toolbox of yours 😉

0 Likes
Message 10 of 12

dmoyer-act
Contributor
Contributor

Thank you for the detailed explanation jtoverka! BTW...I added a vote to your auto ballooning request, that functionality would sure be nice, along with balloons auto healing or not breaking to begin with.

Message 11 of 12

dmoyer-act
Contributor
Contributor

I was able to duplicate this issue per your suggestion that it is a copy and paste issue. The particular project I was having trouble with combined several prior ACE projects into a new project. I used the project manager "copy to" function to get the assembly drawings from the prior projects to the new project. This results in the balloon links breaking and requires manually ballooning all of the copied assembly drawings again. Needless rework.

Message 12 of 12

jtoverka
Advocate
Advocate

Here is a sneak peek. It's rather simple but it makes life sooooo much easier. This will allow you to find broken links within balloons and footprints drawing wide. Just use the find command to find "DEAD" in the drawing. I find broken links in almost all "AS-BUILT" drawings I find.

 

; Name: J. Overkamp
; Date: 07/25/2019
; Function: convert all panel balloons with broken
;   footprint links to display "DEAD"
; Type cleanBalloon to run (defun c:cleanBalloon ( / ent et ent2 et2 bal i) (setq i 0) (setq ent (entnext)) (while ent (setq et (entget ent '("*"))) (if (and (= "ATTRIB" (cdr (assoc 0 et))) (= "B_ITEM" (cdr (assoc 2 et))) (= "PNL" (substr (cdr (assoc 2 (setq et2 (entget (setq ent2 (cdr (assoc 330 et))) '("*"))))) 1 3)) (setq bal (vl-remove "" (LM:str->lst (cdadr (cdr (assoc "VIA_WD_BALLPTR" (cdr (assoc -3 et2))))) ","))) (or (and (apply 'and (mapcar 'handent bal)) (not (apply 'and (mapcar 'entget (mapcar 'handent bal)))) ) (not (apply 'and (mapcar 'handent bal))) ) ) (progn (entmod (subst '(1 . "DEAD") (assoc 1 et) et ) ) (setq i (1+ i)) ) ) (setq ent (entnext ent)) ) (princ "\n\n") (princ (strcat "Killed " (itoa i) " Balloons")) (princ) )