找回密码
 注册
关于网站域名变更的通知
查看: 3958|回复: 21
打印 上一主题 下一主题

有没有cline to shape的skill,帮忙分享一个。谢谢。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-2 15:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 promissingwh 于 2019-1-2 15:43 编辑
9 j5 c: _  W6 Q1 T+ H
! D& X8 z* u: Y7 @有没有cline to shape的skill,帮忙分享一个。谢谢。2 [& z0 o+ M6 z
我在论坛上找到的,运行命令后,会出现:
% G- y( V, z+ HW- *WARNING* (axlDBCreateOpenShape): Invalid database id argument - dbid:removed
) {( A/ g: [- \) k8 l
% H1 U6 [3 s: B0 I( Q: j- k4 K
  • TA的每日心情
    开心
    2024-2-21 15:59
  • 签到天数: 313 天

    [LV.8]以坛为家I

    推荐
    发表于 2019-1-2 15:50 | 只看该作者
    Allegro自带了这个功能,启动时打开Toolbox选项,Edit->Cross Copy功能就能实现了。. T* X$ s1 A8 x8 [

    点评

    学习了  详情 回复 发表于 2019-1-4 10:00
  • TA的每日心情
    奋斗
    2025-9-24 15:41
  • 签到天数: 86 天

    [LV.6]常住居民II

    推荐
    发表于 2022-2-18 11:54
    16.x及之前的版本需要把出现的两个“?undo t"删掉。6 Q0 _  W% Z9 \" X  D& ?& A; r9 S
    1 e; |% U/ J0 q" S" e# S6 `
    1. ;###############################################################################* ~( V/ n  \' Y
    2. ;                                                                              #
      & ]7 d" E/ J0 b9 T  `! C
    3. ;                      Command: cline2shape                                    #; }/ o0 v' _! s
    4. ;                   Skill File: cline2shape.il                                 #. W, }3 N; ^4 n# v2 z, y' A
    5. ;               How To Execute: Command> cline2shape                           #/ t) v" g, w& J+ j
    6. ;                                                                              ## }# \. m! L. v0 C, e8 I0 I% z3 r% }' A
    7. ;  DISCLAIMER:                                                                 #
      - z+ n. F; y/ D2 p3 s0 K3 w
    8. ;       The user of this command assumes all responsibility and does not       #
        M9 e% z0 P2 k% _! ~
    9. ;       hold Cadence Design Systems nor the author of this code for any        #! n2 y' i9 s6 X" t; {
    10. ;       unwarranted results or problems due to the use of this code.           #+ A$ Y1 b5 \$ P1 P0 Q- N
    11. ;                                                                              #2 m( W# M2 H& ]1 _
    12. ;       This is non-supported code and the user may modify it as needed.       #) e: m. i: k% d" \
    13. ;                                                                              #' W+ ~. s; U5 a6 f/ \% m9 T
    14. ;###############################################################################) f, ~9 x4 L' _, ?) d
    15. * [8 ^, T- e& p$ V6 j6 O
    16. ; demostrates9 V4 @/ n( Y3 H) e  ]  Y# ]
    17. ;        1) style for an interactive command
      " m9 Y* G; U# x7 k5 I
    18. ;        2) use of the database tranasction APIs2 E/ O8 T* T% L9 S
    19. ;        3) two styles of undo/redo support9 s8 p  i1 }2 b; N2 L# G4 I
    20. ; Added undo support5 s; S' V* k' D$ |% l. l

    21. ' m/ F3 g1 }. U0 }
    22. ;  Know Bug: Sometimes the program will not convert all cline segments but it 2 w9 K% J/ Q  \! x
    23. ;            will DELETE all segments.  Use at your OWN discretion!
      : Y5 s6 t4 r8 K/ z. ?3 B! M
    24. ;            Select Cancel or Undo before exiting the command to restore  
      + N2 P7 r  f7 d% v' \
    25. ;            to original Clines.
      0 U8 |. N6 X* Z3 L
    26.   L  ]2 j) C, d* N) B
    27. % r: Q1 c2 V  ^' P. {
    28. $ W5 c+ v; m5 C2 D

    29. ) z8 \, n, u) {  K
    30. axlCmdRegister("cline2shape" 'LCB_cline_to_shape ?cmdType "interactive"
      ) l$ g5 r; w5 x# [/ `
    31. ?doneCmd 'LCB_Done ?cancelCmd 'LCB_Cancel ?undo t)  U7 z! F; F* f! m' w: D; w. d
    32. axlCmdRegister("cline2shape2" 'LCB_cline_to_shape2 ?cmdType "interactive"
      5 _; D: e* {4 e4 N
    33. ?doneCmd 'LCB_Done ?cancelCmd 'LCB_Cancel ?undo t)5 D* z0 R8 U# h6 [. I
    34. 4 M# e' @6 [/ ^  a, Z
    35. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      8 Y7 h5 p: i; I2 ]6 z, q
    36. ; This shows undo where all of the conversions that this user does while: P; Q) N; d9 F0 N
    37. ; in the command a undone as a single operation.
      : I, m* n5 C' D9 H
    38. ;        To convert an existing command to support undo this method is7 Z) J0 R* {" ]% G0 C
    39. ;        typically easier.
        O+ p. Y$ R5 K- E6 H) e' R, v

    40.   H2 a& O7 a. Z, V" R  o
    41. procedure(LCB_cline_to_shape()
      - w* l5 K1 o. p2 i1 b+ b, h$ E
    42. let( (lclines layer polydbid )
      5 M& R4 ^% G1 h5 v! [7 _
    43. 1 h; J! G7 D; G: {: k
    44.   LCB_Setup()
      , I) L) K  E$ D( s0 F

    45. 0 [: Q: C7 [, z: C  E5 E& Z' \
    46.   ; cannot have a global transaction if we want undo to roll back each operation6 O* a$ a4 h# E! V; d
    47.   LCB_mark = axlDBTransactionStart()! N5 R& m  ]2 {$ y
    48. ) b3 W4 s" U! {
    49.   LCBnotDone = t! ]. q5 [0 _: h& S7 k! K
    50.   while( LCBnotDone& c  x- q( I) [
    51.       lclines = axlGetSelSet(axlSelect(?prompt "Select Clines to convert to a shape."))- p4 ?9 p& ~& e
    52. ) V4 [( c' i  I. c
    53.       foreach( clinedbid lclines5 j* _2 {5 j4 }' r$ X/ i; M# F7 M
    54.             layer = clinedbid->layer
      " x! I3 M$ p5 _4 V
    55.             polydbid = axlPolyFromDB(clinedbid ?endCapType "ROUND")
      + F& v( |8 R! b# ?% K, n9 F9 K8 e7 r
    56. 2 L- Q# J! \# N3 h1 ]6 S
    57.             axlDeleteObject(clinedbid)3 g( I9 X9 B8 h9 A1 l" ?  j3 |

    58. % s5 B9 U3 m, M" U* t0 D
    59.             unless( axlDBCreateShape(car(polydbid) t layer)  9 O7 B& n# J' x# f
    60.                 axlUIWPrint(nil "ERROR: Failed to create Shape from Cline."): D& f# d, O* k5 T( L
    61.             )8 V# z( s9 b/ K+ b
    62.             when( cadr(polydbid) . B* O9 g7 y; n/ {3 F2 Z" h
    63.                 axlDBCreateShape(cadr(polydbid) t layer) $ ^, H: Q4 X3 r* a: ^8 g8 \) P4 a1 e+ p
    64.             ), q! W( H! y0 S& {
    65.      )& R0 x4 ~# A. H! I. j4 \0 p& Z! h
    66. # k2 C! m) c* |% D4 q0 m4 K  |! ~
    67.      ; marks are only required if undo is using rolling back all database changes
      ( @% B7 t% Q; Y( R
    68.      ; when command is active. When undoing each conversion this is not needed
      % W- O: ?" B9 C* k2 D5 w/ ~1 u
    69.      ; nor is Oops functional.9 f% U7 U6 ?- h: E9 M! {
    70.      when(LCB_mark axlDBTransactionMark(LCB_mark))1 z+ e, a' ]0 A7 i
    71.   )% ~. u7 x/ a3 f0 {2 u
    72.   ;LCB_Done() ; just in case' D# _( V+ o: L) `
    73. ))( R) B% b# Q; H$ n' ]% K
    74.   t) p) b. o9 b/ N
    75. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      : [/ `$ K( `" ?( a! ~
    76. ; This shows undo where each conversion is supported as seperate undo operation! i# p/ t. U2 F: x
    77. ; in the command a undone as a single operation.
      * o: T8 {2 f9 a7 l+ y# J- F, w: ?
    78. ;        To convert an existing command to support undo this method is2 Y5 y7 f( h" b3 S; c
    79. ;        typically easier.( {. w6 y/ l3 l/ o& M- s* F
    80. + t9 l+ n' A4 p7 c  S' g9 R+ o
    81. procedure(LCB_cline_to_shape2()' w" B2 C& d. a1 W5 f
    82. let( (lclines layer polydbid doMark )
      " n  y' j. S. v8 R! e& o, E, L
    83. # ]+ q! `$ Z- ]! W3 K, a
    84.   LCB_Setup()
      # r. F. X4 {5 d. ^% T* f- i6 K

    85. / y, i/ I/ r3 r
    86.   ; cannot have a global transaction if we want undo to roll back each operation
      3 i4 L  |7 k' r. B2 H- a. O
    87. 2 f: D. M6 Z$ E. H. V" V
    88.   LCBnotDone = t
      5 Y% B' b1 n! Z! `2 E. B, y  y
    89.   doMark = 'undoMark. ?, y0 i$ @& |0 W! d
    90. 1 M6 P% x7 w. I5 w
    91.   while(LCBnotDone& _, [0 k7 {) i. m
    92.       lclines = axlGetSelSet(axlSelect(?prompt "Select Clines to convert to a shape."))3 W1 d+ {+ `& @! i

    93. 6 O8 h" v* M: y( }& W6 L. F
    94.       ; need to do a start/commit for each operation if we want undo to : a! \" {* O. @% o9 t
    95.       ; rollback each change. This mostly disables Oops
      6 @: e4 f3 @9 I3 d) U1 [- _# k# ~
    96.       ;          don't want to start a transaction unless we have work to do or it will
      % R3 L; i9 H5 ^
    97.       ;   do a unneeded undoMark. - m1 v9 @% g" K  M3 k
    98.       when(lclines : N, C# E5 ^3 \5 }5 o! Q. E
    99.           LCB_mark = axlDBTransactionStart(doMark)
      , s% F& b$ b9 a5 ~3 o
    100.       )
      4 x" _4 o2 j) S% v
    101. 0 {+ M& X8 |; O4 {" s' x
    102.       foreach( clinedbid lclines- [6 p' v; n* N1 @( e8 c
    103.             layer = clinedbid->layer
      ! X8 F" }0 ], g; ~% T3 S. S
    104.             polydbid = axlPolyFromDB(clinedbid ?endCapType "ROUND")
      3 _! t# s, }* ^5 ^) z! O( v

    105. : Y# [5 P. U" t
    106.             axlDeleteObject(clinedbid)
      4 p5 J* T1 J3 `7 O' U; z& G  Q! e
    107. 0 i  f# r1 t: E/ f) z
    108.             unless( axlDBCreateShape(car(polydbid) t layer) 2 Y, \- Y9 c! l# ~0 P5 S
    109.                 axlUIWPrint(nil "ERROR: Failed to create Shape from Cline."): E' }* y' c6 [+ u
    110.             )
      ' E; @* n$ W/ n# C
    111.             when( cadr(polydbid) - E: ]* ~6 A5 f  Q$ X- \5 t. l
    112.                 axlDBCreateShape(cadr(polydbid) t layer)
      2 }' W% b9 ^, i: U8 M2 S
    113.             )- h/ I2 A) h% ]% y- D& \9 P
    114.      )  Y& i, K' v# s+ k" R& Y
    115. % C0 X. j4 L; B& X+ q$ q$ s
    116.      ; marks are only required if undo is using rolling back all database changes. ^: T% ?  o& b
    117.      ; when command is active. When undoing each conversion this is not needed. u3 N+ z$ h& W7 J# P( l) ~! g' M1 s
    118.      ; nor is Oops functional./ A% w6 |3 K, s1 q, S- W& p6 o
    119.      when(LCB_mark axlDBTransactionCommit(LCB_mark))
      * z8 [% I. z/ |" Y7 F' i2 o2 |
    120.      LCB_mark = nil, K6 j0 b; w3 M+ ]
    121.   )
      " c0 }9 ^4 A, }" f1 F; A9 k
    122.   LCB_Done() ; just in case. w* k. `2 p- p( H1 G3 @2 d
    123. ))
      4 a. F. L2 R4 ]" {+ z0 ^

    124. 6 D# m7 E- p. a  w% A- W8 ~4 {

    125. 6 Y$ {% \5 p8 h5 o: V
    126. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" e' d) l. Y: V  v
    127. ;; support APIs5 s0 I( e( {* ^- B
    128. - R: b/ |$ v/ l6 m* d; p$ O+ y! }& e
    129. procedure(LCB_Setup()
      1 @$ _- s+ k, @6 ^2 ?" x6 Y0 M: V; D
    130. let( (popup)
      " `: f, d" v4 f
    131.   axlSetFindFilter(?enabled list("noall" "clines")
        ]' `' M0 O+ O
    132.                   ?onButtons list("noall" "clines"))  E- x2 w; S( b# I# N2 w
    133. . A: O7 _+ ?# ?6 v, L) ]" s3 ]
    134.   popup = axlUIPopupDefine( nil (list
      & R7 f! v4 j1 c. F! ^
    135.     (list "Done" 'LCB_Done)
      0 b( f# j1 V9 G7 m5 S8 ?9 G
    136.     (list "Oop" 'LCB_Oops)& B' J$ O% ^1 [. n/ C6 D: d
    137.     (list "Cancel" 'LCB_Cancel)- s% |; w( ~8 i  e
    138.      ))* R5 _8 L" L8 I4 x, Z# g" q5 }
    139. - ]3 @7 {" f% t; y  i
    140.   ; Snapping is not required by this command but this shows the ability5 ?. z4 R$ V& U9 g* l
    141.   ; to add the snap sub-menu to the Right Mouse Popup menu
      8 Y. s( L" O" {' e' D. ]1 b
    142.   axlSnapEnableAtRMB()
      ( ?. W1 q, @2 k& n0 d3 J
    143. 2 z% o8 B' \& W* o+ F
    144.   axlUIPopupSet(popup)
      4 }0 O  e# x8 n; c
    145.   LCB_mark = nil
      * l5 k5 O7 b& o# }* N$ r7 N. w# U
    146. ))  I2 o$ n) W8 B4 G! l! p
    147. 1 D1 |) n* p+ K
    148. procedure(LCB_Oops()
      9 _7 |% K; C0 q. Q* K; @/ E1 L$ D
    149.   when(LCB_mark
      ' }0 ^: f& n/ |7 j
    150.     if(! axlDBTransactionOops(LCB_mark) then0 u& C7 `' e! e- u; J
    151.       axlUIWPrint(nil "-- Nothing Left To oops. --")
      3 n7 g2 E: L+ c6 o+ ?- l
    152.     else0 t) R4 e. W/ o. e3 _
    153.       axlUIWPrint(nil "-- Replacing Clines. --")  y; q) f) L: {+ e5 i  a2 D& V
    154.     )6 }7 [# S; L- o+ S* i
    155.   )2 ?! F) L# T5 |+ I0 ^" j& z
    156.   axlClearSelSet()  d( \# E' A! M/ v: x2 ~' A$ j! n
    157. )" ?. C% q4 X  [1 s# d. N% H
    158. ) h& N1 S+ H! q; y) ]( T% @4 G" u* l$ f
    159. procedure(LCB_Cancel()2 {( a- }( c' `; p) z7 @6 U* Z+ }
    160.   axlUIWPrint(nil "** Cancelled Program. **")  q+ r4 _1 _( a" b8 [4 t- s8 Z* f
    161.   when( LCB_mark axlDBTransactionRollback(LCB_mark))( t& K& y0 r6 e* B
    162.   ;LCB_mark = nil" Y% p( ]: Y4 S3 k6 B( u
    163.   LCBnotDone = nil
      ) p, j- q2 F6 b3 s. y
    164.   axlClearSelSet()5 Y" h& I: n3 ~; q' e$ t5 k
    165.   axlCancelEnterFun()
      $ M" f7 b' Q* i" V: ]
    166. )! X+ x! {& K5 S% D, a1 z( s
    167. 4 s, z) a% [" U; z) v
    168. " S6 _* X; v& N8 X
    169. procedure(LCB_Done(); b. A% t- L, O  `& \/ W% t: @2 L
    170.   when( LCB_mark axlDBTransactionCommit(LCB_mark)), u- `' [' i3 i$ F+ x
    171.   ;LCB_mark = nil
      9 ?4 z- V& R% r& v
    172.   LCBnotDone = nil
      - O+ [7 T& u0 G+ [: h: z% w
    173.   axlFinishEnterFun()0 N* H& R  M1 ^: i2 [1 d
    174. )) x6 E0 p) n. L; c) {7 e7 G
    复制代码

    点评

    删掉也不行,还是报错E- *Error* axlDBTransactionStart: too many arguments (0 expected, 1 given) - (undoMark)  详情 回复 发表于 2023-6-5 16:00
  • TA的每日心情
    奋斗
    2025-7-25 15:20
  • 签到天数: 124 天

    [LV.7]常住居民III

    推荐
    发表于 2023-6-5 16:00 | 只看该作者
    db-_- 发表于 2022-2-18 11:54
    3 t  M3 D3 ~  Y# x& m4 U- y  @16.x及之前的版本需要把出现的两个“?undo t"删掉。
    0 X% }9 D( j! k7 b/ \
    删掉也不行,还是报错E- *Error* axlDBTransactionStart: too many arguments (0 expected, 1 given) - (undoMark)$ H7 ~2 z( k* o$ m4 V

    该用户从未签到

    5#
    发表于 2019-1-2 19:17 | 只看该作者
    看一下,学一下
  • TA的每日心情
    开心
    2020-9-9 15:52
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    6#
    发表于 2019-1-4 10:00 | 只看该作者
    dzkcool 发表于 2019-1-2 15:50
    ) o2 ]- }( t4 @# \% ]; T; ]; wAllegro自带了这个功能,启动时打开Toolbox选项,Edit->Cross Copy功能就能实现了。
    : _9 p, `$ I; y9 `3 N
    学习了2 \# @" V" O( r3 [3 [5 I

    点评

    请问16.6有这个功能吗  详情 回复 发表于 2019-1-4 10:14

    该用户从未签到

    7#
    发表于 2019-1-4 10:14 | 只看该作者
    owenli520 发表于 2019-1-4 10:00
      f5 A5 N% c; F/ c学习了

    / E$ g# G- O1 x4 K" m3 g- b. p请问16.6有这个功能吗5 |8 I4 z, D) p" O' t

    点评

    新版本有,我用的17.2  详情 回复 发表于 2019-1-4 14:25
  • TA的每日心情
    开心
    2024-2-21 15:59
  • 签到天数: 313 天

    [LV.8]以坛为家I

    8#
    发表于 2019-1-4 10:16 | 只看该作者
    从16.6开始就有了

    点评

    是不是需要再打个补丁?  详情 回复 发表于 2019-1-9 17:37
    我哪儿都找不到toolbox,请问在哪里可以打开?麻烦告之,谢谢!  详情 回复 发表于 2019-1-9 17:32

    该用户从未签到

    9#
    发表于 2019-1-4 11:21 | 只看该作者
    allegro productivity toolbox

    点评

    請問是在哪裡呢? 我的沒瞧見  详情 回复 发表于 2019-1-8 18:51

    该用户从未签到

    10#
    发表于 2019-1-4 11:57 | 只看该作者
    corss copy确实很好用,还可以直接将pad copy成shape,对于挖空来说很方便。
  • TA的每日心情
    开心
    2020-9-9 15:52
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    11#
    发表于 2019-1-4 14:25 | 只看该作者
    lavidayao 发表于 2019-1-4 10:14
    % @' s) L8 O) U1 i- o请问16.6有这个功能吗

    ( P  K% {/ w% z( F6 V- j1 T4 O) m" g新版本有,我用的17.21 a) c8 {* D: K3 ]) u/ T

    该用户从未签到

    12#
    发表于 2019-1-4 15:57 | 只看该作者
    新版的功能学习起来1 H/ @+ j* r. v/ o

    该用户从未签到

    13#
    发表于 2019-1-8 18:51 | 只看该作者
    13349852893 发表于 2019-1-4 11:21
    ) b6 {8 H: X* k$ ]5 E2 Aallegro productivity toolbox
    + V( M4 S  l8 j+ C  l4 H* ]
    請問是在哪裡呢? 我的沒瞧見
    + r$ k. I; O- M' p5 g7 L

    该用户从未签到

    14#
    发表于 2019-1-9 10:16 | 只看该作者
    16.6版本 shape栏有个compose shape 选中后,在optins 选项栏中 设置好你要的shape图层属性。在finds中只勾选lines然后框选你的闭合线框就会生成你设定的shape。注意线框一定要闭合的

    点评

    这个15.X版本就已经有了的。不过还是感谢回答。  详情 回复 发表于 2019-1-9 17:31

    该用户从未签到

    15#
     楼主| 发表于 2019-1-9 17:31 | 只看该作者
    何文斌 发表于 2019-1-9 10:164 T/ H4 ]' Y/ j0 T) e6 w
    16.6版本 shape栏有个compose shape 选中后,在optins 选项栏中 设置好你要的shape图层属性。在finds中只勾 ...
    1 ?" t5 ~; e" R2 S; g; H7 P( x
    这个15.X版本就已经有了的。不过还是感谢回答。
    4 j2 W' }/ B+ T) X

    该用户从未签到

    16#
     楼主| 发表于 2019-1-9 17:32 | 只看该作者
    dzkcool 发表于 2019-1-4 10:165 j" S+ P- D9 `: j* I
    从16.6开始就有了
    % t/ z% K) l- S0 V
    我哪儿都找不到toolbox,请问在哪里可以打开?麻烦告之,谢谢!- Z$ N/ W  q" E: v! I

    该用户从未签到

    17#
     楼主| 发表于 2019-1-9 17:37 | 只看该作者
    dzkcool 发表于 2019-1-4 10:16$ q: l- _! I) v' d. o2 [
    从16.6开始就有了
    # O8 x0 n8 X: v0 @( B$ w
    是不是需要再打个补丁?
    ! i0 R# ~( h, \5 g

    product.png (25.32 KB, 下载次数: 0)

    product.png
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-2 14:59 , Processed in 0.187500 second(s), 30 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表