more control of display.drf
CADForums.net Forum Index CADForums.net
Discussion of AutoCAD and other CAD software.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web cadforums.net
more control of display.drf

 
Post new topic   Reply to topic    CADForums.net Forum Index -> Cadence
Author Message
Erik Wanta
Guest





Posted: Mon Oct 11, 2004 7:17 pm    Post subject: more control of display.drf Reply with quote

We want to be able to support the use of multiple PDKs at one time. I
want to be able to load the appropriate display.drf for the layout
that I am currently opening up. I created a user trigger to do a
drLoadDrf() on the display.drf for the technology that the library is
attached to.

Problems:
1. I get a pop up message when I open that layout asking if I want to
see a list of all the undefined layers. So, it seems that drLoadDrf
is taking place after it checks to see if packets are defined for all
the layers. Any ideas how I can disable this warning or load the
display.drf sooner?

2. How do I clear all the packets ... from virtual memory? I want to
start from a clean slate before loading the display.drf from a
different technology.

3. If I use drLoadDrf it asks If I want to save the display.drf when
I exit icfb. Maybe if I find a way to purge packets in step 2 it
won't ask.

4. Can't have 2 layouts for 2 different technologies open in the same
session.

procedure(dt(argList)
prog((techName libPath)

when(techName=techGetTechLibName(argList->libId)

/*
foreach(packet drGetPacketList(drGetDisplay("display"))
drDeletePacket(drGetDisplay("display") packet)

) ; foreach
*/


libPath=ddGetObjWritePath(ddGetObj(techName))

when((isFile(strcat(libPath "/display.drf")) &&
!isFile("display.drf"))

drLoadDrf(strcat(libPath "/display.drf"))

) ; when

) ; when

return(t)

) ; prog
) ; procedure

when(member('dt deGetAppInfo("maskLayout")->userAppTrigList)
;if registered, unregister
_deUnRegUserTrigger("maskLayout" 'dt nil nil)
) ; when

;register the display.drf load user trigger
deRegUserTriggers("maskLayout" 'dt nil nil)

---
Erik

Back to top
S. Badel
Guest





Posted: Tue Oct 12, 2004 12:06 pm    Post subject: Re: more control of display.drf Reply with quote

1. What if you do it in the libInit.il of the tech. library ?
If you don't mind adding or modifying a PDK file...
It would be loaded only once, of course, not sure this matches your needs.

I saw also there is tcRegPreLoadTrigger() which allows a trigger to
be called each time a technology file is loaded.

2. you can do (didn't try it)
foreach( packet drGetPacketList("display")
drDeletePacket("display" packet)
) ; foreach
or even enclose it in foreach( display drGetDisplayNameList() ... )
to process all displays.

I think however that all PDKs should use different packet names in order
to be able to load several at the same time without conflicts.

3. try drLoadDrf( file nil )

stéphane

Erik Wanta wrote:
Quote:
We want to be able to support the use of multiple PDKs at one time. I
want to be able to load the appropriate display.drf for the layout
that I am currently opening up. I created a user trigger to do a
drLoadDrf() on the display.drf for the technology that the library is
attached to.

Problems:
1. I get a pop up message when I open that layout asking if I want to
see a list of all the undefined layers. So, it seems that drLoadDrf
is taking place after it checks to see if packets are defined for all
the layers. Any ideas how I can disable this warning or load the
display.drf sooner?

2. How do I clear all the packets ... from virtual memory? I want to
start from a clean slate before loading the display.drf from a
different technology.

3. If I use drLoadDrf it asks If I want to save the display.drf when
I exit icfb. Maybe if I find a way to purge packets in step 2 it
won't ask.

4. Can't have 2 layouts for 2 different technologies open in the same
session.

procedure(dt(argList)
prog((techName libPath)

when(techName=techGetTechLibName(argList->libId)

/*
foreach(packet drGetPacketList(drGetDisplay("display"))
drDeletePacket(drGetDisplay("display") packet)

) ; foreach
*/


libPath=ddGetObjWritePath(ddGetObj(techName))

when((isFile(strcat(libPath "/display.drf")) &&
!isFile("display.drf"))

drLoadDrf(strcat(libPath "/display.drf"))

) ; when

) ; when

return(t)

) ; prog
) ; procedure

when(member('dt deGetAppInfo("maskLayout")->userAppTrigList)
;if registered, unregister
_deUnRegUserTrigger("maskLayout" 'dt nil nil)
) ; when

;register the display.drf load user trigger
deRegUserTriggers("maskLayout" 'dt nil nil)

---
Erik
Back to top
 
Post new topic   Reply to topic    CADForums.net Forum Index -> Cadence All times are GMT
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Windows Server DSP VoIP Electronics New Topics
Contact Us
Powered by phpBB