HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/share/inkscape/extensions/dxf_outlines.pyc
�
��Yc@sdZddlZddlZddlZddlZddlZddlZddlZyddlTddl	m
Z
Wn1ej�eje
d��ejj�nXd�Zd�Zd�Zd	ejfd
��YZedkre�Zej�ndS(sD
Copyright (C) 2005,2007,2008 Aaron Spike, aaron@ekips.org
Copyright (C) 2008,2010 Alvin Penner, penner@vaxxine.com

This file output script for Inkscape creates a AutoCAD R14 DXF file.
The spec can be found here: http://www.autodesk.com/techpubs/autocad/acadr14/dxf/index.htm.

File history:
- template dxf_outlines.dxf added Feb 2008 by Alvin Penner
- ROBO-Master output option added Aug 2008
- ROBO-Master multispline output added Sept 2008
- LWPOLYLINE output modification added Dec 2008
- toggle between LINE/LWPOLYLINE added Jan 2010
- support for transform elements added July 2010
- support for layers added July 2010
- support for rectangle added Dec 2010

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
i����N(t*(tsolves�Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again.cCs9|\}}|\}}tj||d||d�S(Ni(tmathtsqrt(t.0t.1tx1ty1tx2ty2((s./usr/share/inkscape/extensions/dxf_outlines.pyt
pointdistance4scCsld|d|d|dd|d||d|dd||d|d||d|d|S(Niiii((tutcsptcol((s./usr/share/inkscape/extensions/dxf_outlines.pytget_fit7scCs|||dkrh||||d||||d||d||d||d||dS||dkr||||d||d||||d||d||d||||||d||d||d||d||dS||krt||d||||d||||d||d||d||dSdSdS(Niii((Rtitj((s./usr/share/inkscape/extensions/dxf_outlines.pyt
get_matrix:sX�XtMyEffectcBs}eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZRS(
cCs�tjj|�|jjddddddddd	t�|jjd
dddddddd	t�|jjd
ddddddd	d�|jjdddddddd	d�|jjddddddd�|jjddddddd�|jjdddddddd	d�|jjddddddd�g|_d|_dg|_	d|_
g|_ddggd|_t
d gt�|_ddgg|_dS(!Ns-Rs--ROBOtactiontstorettypetstringtdesttROBOtdefaults-Ps--POLYtPOLYs--unitstunitss72./96s
--encodingtchar_encodetlatin_1s--tabttabs--inputhelpt	inputhelps--layer_optiontlayer_optiontalls--layer_namet
layer_namei�t0gii(tinkextEffectt__init__tOptionParsert
add_optiontFalsetTruetdxfthandletlayerstlayert
layernamestcsp_oldtarraytfloattdtpoly(tself((s./usr/share/inkscape/extensions/dxf_outlines.pyR&Es<


				cCsdj|j�GHdS(Nt(tjoinR+(R5((s./usr/share/inkscape/extensions/dxf_outlines.pytoutputescCs#|jj|j|jj��dS(N(R+tappendtencodetoptionsR(R5tstr((s./usr/share/inkscape/extensions/dxf_outlines.pytdxf_addgscCss|jd7_|jd|j|j|jf�|jd|dd|dd|dd|ddf�dS(Nis:  0
LINE
  5
%x
100
AcDbEntity
  8
%s
 62
%d
100
AcDbLine
s, 10
%f
 20
%f
 30
0.0
 11
%f
 21
%f
 31
0.0
i(R,R=R.tcolor(R5R((s./usr/share/inkscape/extensions/dxf_outlines.pytdxf_lineis#cCs�t|dd|jdd�dksRt|dd|jdd�dkr�|j�|dg|_|j|_|j|_n|jj|d�dS(Nii����g-C��6?i(tabsR4t
LWPOLY_outputR>tcolor_LWPOLYR.tlayer_LWPOLYR9(R5R((s./usr/share/inkscape/extensions/dxf_outlines.pytLWPOLY_linems))
cCst|j�dkrdS|jd7_d}t|jdd|jdd�dks�t|jdd|jdd�dkr�d}n|jd|j|j|jt|j�||f�xNtt|j�|�D]3}|jd|j|d|j|df�q�WdS(Niii����g-C��6?sR  0
LWPOLYLINE
  5
%x
100
AcDbEntity
  8
%s
 62
%d
100
AcDbPolyline
 90
%d
 70
%d
s 10
%f
 20
%f
 30
0.0
(tlenR4R,R@R=RCRBtrange(R5tclosedR((s./usr/share/inkscape/extensions/dxf_outlines.pyRAus,,	6 cCs�d}d}|jd7_|jd|j|j|jf�|jd||f�x<td�D].}x%td�D]}|jd|�quWqbWx-|D]%}|jd|d	|df�q�WdS(
Niiis>  0
SPLINE
  5
%x
100
AcDbEntity
  8
%s
 62
%d
100
AcDbSpline
s  70
8
 71
3
 72
%d
 73
%d
 74
0
is 40
%d
s 10
%f
 20
%f
 30
0.0
i(R,R=R.R>RF(R5RtknotstctrlsRR((s./usr/share/inkscape/extensions/dxf_outlines.pyt
dxf_spline�s#
c	Csgt|dd|jdd�dks�t|dd|jdd�dks�t|dd|dd|jdd|jdd|dd|dd|jdd|jdd�dkr@|j�t|ddgt�|_t|ddgt�|_tdgt�|_|j|_	|j
|_nt|jt
d�f�|_t|jt
d�f�|_t|jt
d�f�|_x�tdd�D]�}t|j�|d}t|d|d�|j|<t|d|d�|j|<|j|dt|j|d|j|df|j||j|f�|j|<q�W||_dS(	Niig-C��6?iig����MbP?ig@(R@R0tROBO_outputR1R2txfittyfitR3R>t
color_ROBOR.t
layer_ROBOtconcatenatetzerosRFRERR
(R5RRR((s./usr/share/inkscape/extensions/dxf_outlines.pytROBO_spline�s$))z
YcCs�t|j�dkrdSt|j�}|d}|d}t|jtd�f�|_t|jtd�f�|_t|jtd�f�|_|j|d|j|d<|j|d<|j|<t||fdt�}x�t|�D]s}t|j||�|||f<t|j||d�|||df<t|j||d�|||df<q�W|jd|j|d||df<|jd|jd|j|d||df<|jd|j|d||df<|j|d|j|d|j|d||d|df<|j|d|j|dd|j|d|j|d||d|f<|j|d|j|d|j|d||d|df<t	||j�}t	||j�}|j
d7_
|jd|j
|j|j
f�|jd	|||f�x0t|�D]"}|jd
|j|d�q5Wx3t|�D]%}|jd||||f�qhWx9t|�D]+}|jd|j||j|f�q�WdS(
Niiiitdtypeiis>  0
SPLINE
  5
%x
100
AcDbEntity
  8
%s
 62
%d
100
AcDbSpline
s! 70
0
 71
3
 72
%d
 73
%d
 74
%d
s 40
%f
s 10
%f
 20
%f
 30
0.0
s 11
%f
 21
%f
 31
0.0
(RER3RPRLRQRMR2RFRRR,R=RORN(R5tfitsRIRHt	solmatrixRtxctrltyctrl((s./usr/share/inkscape/extensions/dxf_outlines.pyRK�s>

6'+&2&APA# #c
Cs^d'}|jd�}|r�tj|�}|jd�r�|dr�|ddkr�|ddd!dkr�tj|d�}q�q�ntjjtj�|dd|dd|d	d�}d
|_|d	r�dt	d|dd�d|_n|j
tjd
d�kr>|jd�}|s,dSt
j|�}n�|j
tjdd�kr�t|jdd��}t|jdd��}	t|jd��}
t|jd��}d||	|
dd||
df}t
j|�}n|j
tjdd�kr�t|jdd��}t|jdd��}
t|jdd��}t|jdd��}d|||
|f}t
j|�}ne|j
tjdd�kr1t|jdd��}t|jdd��}t|jd��}d |||||d!|d||d	|df
}t
j|�}n�|j
tjd"d�kr�t|jdd��}t|jdd��}t|jd#��}t|jd$��}d |||||d!|d||d	|df
}t
j|�}ndS|jd%�}|r#tj|tj|��}ntj||�x$|D]}xtt|�d�D]�}||}||d}|d|d	kr�|d|dkr�|jjd&kr�|j|d|dg�qR|j|d|dg�qW|jjd&kr)|j|d|d	|d|dg�qW|j|d|d	|d|dg�qWWq:WdS((Nitstyletstroketnoneiturlg�o@iiiig�?tpathtsvgR3trecttxtytwidththeightsm %s,%s %s,%s %s,%s %s,%s ztlineRRRR	sM %s,%s L %s,%stcircletcxtcytrs/m %s,%s a %s,%s 0 0 1 %s,%s %s,%s 0 0 1 %s,%s zi����tellipsetrxtryt	transformttrue(iii(tgettsimplestylet
parseStylethas_keyt
parseColortcoloreffecttColorEffectt
rgb_to_hslR>tintttagR$taddNStcubicsuperpatht	parsePathR2tsimpletransformtcomposeTransformtparseTransformtapplyTransformToPathRFRER;RRDR?RRRRJ(R5tnodetmattrgbRXthslR3tpR_R`RaRbRRRR	ReRfRgRiRjttranstsubRtste((s./usr/share/inkscape/extensions/dxf_outlines.pyt
process_shape�sv19	
&#44

(,cCs�|jd�}|jd�}|jd�}dddgdddgg}|rotj|tj|��}n|r�tj|ddt|�gdddgg�}n|r�tj|dddgddt|�gg�}n|s�|s�|r|jjtj|jd|��n|jtjdd��}|j	|d	�}|dk	r�|jtjd
d�kr~|j|�q�|jtjdd�kr�|j
|�q�|j||jd�n|s�|s�|r�|jj�ndS(
NRkR_R`g�?gi����threftxlinkitgR]tuse(RmRzR{R|R2tgroupmatR9R$RwtgetElementByIdtNoneRvt
process_groupt
process_cloneR�tpop(R5R~R�R_R`Rtrefidtrefnode((s./usr/share/inkscape/extensions/dxf_outlines.pyR�s,33&c
Cs�|jtjdd��dkr|jd�}|r�tj|�}|jd�r�|ddkr�|jjr�|jjdkr�dSq�n|jtjdd��}|jjr�|jjr�|jjd	kr�|j	�|jjkr�dS|j
d
d�}||jkr||_qn|jd�}|ra|j
jtj|j
d
tj|���nx{|D]s}|jtjdd�kr�|j|�qh|jtjdd�kr�|j|�qh|j||j
d
�qhW|r�|j
j�ndS(Nt	groupmodetinkscapeR.RXtdisplayRZtvisibletlabeltnamet t_Rki����R�R]R�(RmR$RwRnRoRpR;R R"tlowertreplaceR-R.R�R9RzR{R|RvR�R�R�R�(R5tgroupRXR.R�R~((s./usr/share/inkscape/extensions/dxf_outlines.pyR�s0!.
B/
c	Csg|jjrN|jjdkrN|jjrNtjtd��tjj�n|jjr~|jjj�j	d�|j_n|j
tj�x|j
j�jddtj�D]�}|jtjdd��dkr�|jtjd	d��}|jj|j��|jjrP|jjrP|jjdkrP|j�|jjkrPq�n|jd
d�}|r�||jkr�|jj|�q�q�q�W|j
dt|j��x?tt|j��D](}|j
d
|d|j|f�q�W|j
tj�t|jj�}|s"dd}n||jd�:}|j|j
j�jddtj�d�}|ddgd|||ggg|_|j
j�}|j|�|jjdkr�|j �n|jj!dkr�|j"�n|j
tj#�|jjrc|jjrc|jjdkrcx@|jjD]/}||jkr-tjtd�|�q-q-WndS(NR�sPError: Field 'Layer match name' must be filled when using 'By name match' optiont,s//svg:gt
namespacesR�R�R.R�R�R�s+  2
LAYER
  5
2
100
AcDbSymbolTable
 70
%s
s`  0
LAYER
  5
%x
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
  2
%s
 70
0
  6
CONTINUOUS
iPgffffff9@i`t1pxs@heightigRlsWarning: Layer '%s' not found!($R;R R"R$terrormsgR�tsystexitR�tsplitR=t
dxf_templatest
r14_headertdocumenttgetroottxpathtNSSRmRwR/R9R�R-RERFt	r14_styletevalRtunittouuR�R�RRKRRAt
r14_footer(R5R~R.Rtscalethtdoc((s./usr/share/inkscape/extensions/dxf_outlines.pyteffect8sH+$(!B&
.)


*(t__name__t
__module__R&R8R=R?RDRARJRRRKR�R�R�R�(((s./usr/share/inkscape/extensions/dxf_outlines.pyRDs	 								!	@		t__main__(t__doc__RR$RnRzRxRrR�tnumpytnumpy.linalgRtlocalizeR�R�R�R�R
RRR%RR�R�taffect(((s./usr/share/inkscape/extensions/dxf_outlines.pyt<module> s,

			
�$