原地(封装中心点在中心)mirror元件-源码
本帖最后由 王开鑫55 于 2018-1-16 17:49 编辑;封装的中心点镜像,不在中心不在原地
axlCmdRegister("Original_mirror" 'Original_mirror )
defun(Original_mirror ()
let(()
mirror_form()
formm = axlFormCreate((gensym) "./mirror.form" nil 'pform_Action_drlh t nil)
axlFormDisplay(formm)
;deleteFile("./mirror.form")
);end let
);end defun
(defun mirror_form ()
(prog ()
pform = outfile("./mirror.form" "w")
fprintf(pform "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(pform "FORM toolwindow\n")
fprintf(pform "FIXED\n")
fprintf(pform "PORT 15 8\n")
;PORT w h
fprintf(pform "HEADER \"www\"\n")
fprintf(pform "TILE\n")
fprintf(pform "TEXT \"Mirror\"\n")
fprintf(pform "TLOC 0 0\n")
fprintf(pform "ENDTEXT\n")
fprintf(pform "FIELD mirror\n")
fprintf(pform "FLOC 1 2\n") ;FLOC x y
fprintf(pform "MENUBUTTON \"mirror\" 10 3\n")
fprintf(pform "ENDFIELD\n")
fprintf(pform "FIELD done\n")
fprintf(pform "FLOC 1 6\n")
fprintf(pform "MENUBUTTON \"Done\" 10 3\n")
fprintf(pform "ENDFIELD\n")
fprintf(pform "ENDTILE\n")
fprintf(pform "ENDFORM\n")
close(pform)
))
(defun pform_Action_drlh (formm)
(case formm->curField
("done"
axlFormClose(formm)
axlCancelEnterFun()
deleteFile("./mirror.form")
axlMsgPut("Done")
nil
)
("mirror"
mirror()
t
)
);end case
);end defun
(defun mirror ()
axlVisibleLayer("pin/top" t)
axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
axlVisibleLayer("pin/bottom" t)
axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" t)
axlClearSelSet()
axlSetFindFilter(?enabled '(noall symbols) ?onButtons '(noall symbols))
allsymbols = axlGetSelSet(axlSelect(?prompt "Select symbols by pick or box."))
axlClearSelSet()
foreach(sym allsymbols
sym_mirror=axlTransformObject(sym,?move '(0.0,0.0) , ?mirror t, ?allOrNone t)
);end foreach
axlVisibleUpdate(t)
)
PS:以下两点情况不能使用:
fix元件不能mirror.
建立封装时元件中心点不在元件中心的,mirror后不在原来位置。
支持点选,框选
养成良好的习惯,画封装时原点放在中心位置。有兴趣的可以进行代码扩展,函数:axlDBGetSymbolBodyExtent 辛苦了 ,支持原创 谢谢分享 env 里面寫一句話就可以用快捷鍵做到了哦。 :lol:lol:lol:lol:lol:lol jordanli22 发表于 2020-2-1 09:40
env 里面寫一句話就可以用快捷鍵做到了哦。
求大哥赐教 :lol:lol:lol:lol:lol:lol:lol jordanli22 发表于 2020-2-1 09:40
env 里面寫一句話就可以用快捷鍵做到了哦。
那句话呀,请留言呀 学习学习,谢谢分享 学习学习,谢谢分享
页:
[1]
2