#1 Wed 14 September 2011 13:36
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
[APIC] Initialisation de géométrie par asl
Aloha
Je cherche comment initialiser/créer la géométrie d'une série d'objet surfacique par asl. Je souhaiterai leur donner la même géométrie qu'un objet qui est déjà dans ma base.
ObjetAjouterSection me semble être le bon opérateur, mais l'argument "table de points" me laisse coi. Comment je transforme un objet en table de points ?
D'avance, merci,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#2 Wed 14 September 2011 14:04
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: [APIC] Initialisation de géométrie par asl
Salut Pierre,
Si tu as déjà un objet en base, quelque soit son modèle et que tu veux créer un autre objet identique à la ce dernier, utilise plutôt l'opérateur ObjetCopierPartie
Hors ligne
#3 Wed 14 September 2011 14:17
- JC
- Membre
- Lieu: Les Clayes sous Bois
- Date d'inscription: 31 Jul 2007
- Messages: 332
Re: [APIC] Initialisation de géométrie par asl
Hello Pierre !
Même suggestion que Pierre-Yves : ObjetCopierPartie devrait te rendre le service attendu. A noter qu'à mon sens, il est plus facile à utiliser avec les géométries (qui s'annulent et remplacent...) qu'avec les attributs/relations, qui demandent un peu plus de précautions.
JC
Association GeoRezo.net
Hors ligne
#4 Wed 14 September 2011 14:22
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: [APIC] Initialisation de géométrie par asl
Autre chose,
Si tu es sous Oracle avec un autocommit activé, un conseil :
- débraye le
- fais ton ObjetCopierPartie et toute les manipulations sur les sections
- réactive ton autocommit
Sinon, il peut y avoir des problèmes (objet résultant zombi...)
Hors ligne
#5 Wed 14 September 2011 14:28
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: [APIC] Initialisation de géométrie par asl
Exemple
Fonction [FPC_DECOUPE_Cas_1 (collec,ilot,parc) var obj]
[
FPC_SC_RemplirTablesPoints
CollectionAjouterObjet collec parc
BDFixerOption (3,0) // On débraye l'autocommit momentanément
Donner [obj] ObjetCreerED COMP_TERRAIN FPC_TABLE_5POINTS 510
Quand (Objet? obj)
[
// Copie du graphisme depuis l'objet source
ObjetCopierPartie parc obj "GS"
ObjetSupprimerSection obj 1
WBO_DIVERS_RedresserTextureObjet obj
WBO_AfficherStandard obj
ObjetFixerAttributSimple obj ATTR_TERRAIN_ORIGINE VAL_ORIGINE_CADASTRE
BDCommit
CollectionAjouterObjet COLLEC_TERRAIN_CREES obj
]
BDFixerOption (3,1) // et on re remet sinon plantage dans le maniement des sections
]
Hors ligne
#6 Wed 14 September 2011 16:08
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: [APIC] Initialisation de géométrie par asl
Ok.
Pour initialiser une géom de type polygone j'ai utilisé :
Code:
... Donner [tabpt] AllouerTable TypePoint 4 Copier (tabpt : 0) Point 0 0 Copier (tabpt : 1) Point 1 1 Copier (tabpt : 2) Point 0 1 Copier (tabpt : 3) Point 0 0 Donner [objgra] ObjetCreerED compogra tabpt 1 ...
Merci à tous.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#7 Thu 15 September 2011 06:24
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: [APIC] Initialisation de géométrie par asl
Salut Pierre,
Fais attention quand même que les coordonnées passées dans ta table soient dans ton espace géographique !!!!
Surtout sous Oracle encore une fois
Si ton objet à créer est le premier a avoir cette forme, tu dois passer par ObjetCreerED puis éventuellement lui rajouter des sections graphiques (dans la cas d'objet multi part ou bien d'objet ayant des traits tranparents
Si ton objet à créer à son homologue graphique en base, tu dois passer par ObjetCreerED pour l'initialiser ObjetCopierPartie pour récupérer le graphisme de l'autre objet puis ObjetSupprimerSection pour supprimer la section qui ta permis d'initialiser l'objet
En aucun cas, il faut laisser dans la base un objet graphique linéeaire (;9) ...... sans graphisme.
Dernière modification par pyjoubert (Thu 15 September 2011 06:25)
Hors ligne