2015-02-10 3 views
0

Я кодирую некоторые svg для последующего редактирования Inkscape. Кроме того, у меня есть группы, которые я хочу создать, отображается как слой, когда выпадающее меню. Но в настоящее время, когда меня нажимают, я вижу только (root), и ничего больше, пока у меня на самом деле есть 12 слоев, которые должны создать 12 строк.Как закодировать слои svg, чтобы они отображались в раскрывающемся меню слоев Inkscape?

enter image description here

Я в настоящее время делают:

svg.append("g") 
    .attr("groupmode","layer") 
    .attr({'id':'L1_borders','label':'L1_borders'}) 

Но он не работает (see & download).

Как скопировать слои svg, чтобы они отображались в раскрывающемся меню слоев Inkscape?

ответ

0

Открыть Inkscape GUI, создайте новый слой, и проверку показывает, что, по некоторым причинам, Inkscape добавляет пространство имен "Inkscape:" до ключей НЕМНОГОГО атрибута объявления, такой:

enter image description here

Так D3 коды зеркалирования этого поведения должны быть достаточно:

svg.append("g") 
    .attr("inkscape:groupmode","layer") 
    .attr({'id':'L1_borders','inkscape:label':'L1_borders'}) 

, которая раздражает меня, потому что вряд ли будут стандартными. Раздражает.

Даже это дополнение, на самом деле, очищается D3js, который я полностью поддерживаю в этом дерзком движении!

Тем не менее, мне они нужны. В конце концов я сделал крошечный хак:

svg.append("g") 
    .attr(":inkscape:groupmode","layer") 
    .attr({'id':'L1_borders',':inkscape:label':'L1_borders'}) 

D3js очищает первый ...: и оставляет inkscape:label. Затем он работает. Напр. Когда делаются на L0 & L1:

enter image description here

Слои теперь доступны в качестве интерактивных строк в слоях GUI выпадающего меню.

О, некрасиво озорной нестандартным хак ~~~

+0

SVG не имеет понятия «слоев». Вот почему Inkscape использует собственное пространство имен для хранения этой информации в атрибутах. –

+0

Спасибо !!! Это объясняет и облегчает мой сон! – Hugolpz

+2

Возможно, вы также должны добавить в свой корень '' объявление пространства имен 'xmlns: inkscape =" http://www.inkscape.org/namespaces/inkscape "'. –

 Смежные вопросы

  • Нет связанных вопросов^_^