Overblog
Suivre ce blog Administration + Créer mon blog
27 février 2012 1 27 /02 /février /2012 15:40

Problématique 

L’installation de ces suites est un peu longue à démarrer, il faut entrer ses codes, configurer ses installations, et au bout d’un (long) moment, on a un message d’erreur : sur mes deux postes, un Vista 64 et un seven 64, j’ai eu celui-là :

Error 2738 Installation, could not access VBScript run time for custom action

 

Puis sur le poste vista, j’ai eu un autre  problème, le redémarrage intempestif du poste, avant la fin de l’installation. Chaque tentative prends du temps, et on est toujours pressé, quand on configure un poste …

 

L’erreur 2738

C’est un problème d’enregistrement de vbscript.

Autodesk préconise ceci, mais chez moi, ça n’a pas marché :

http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=15102758&linkID=9240617

 

Moi j’ai utilisé cette méthode, avec succès :

http://upandready.typepad.com/up_and_ready/2011/07/error-2738-installation-could-not-access-vbscript-run-time-for-custom-action.html

Elle consiste à supprimer tout enregistrement de vbscript.dll directement par l’édition du registre, puis de l’enregsitrer de nouveau.

En gros, il faut ouvrir la console msdos en mode administrateur (programme, accessoire, invite de commande) et entrer des commandes de modification du registre,  et des commandes regsvr32  

Si on a peur, on peut sauvegarder sa clé de registre avant via un reg export.

Supprimer l’enregistrement :

Sous Windows 7 64 bit

reg export HKCU\SOFTWARE\Classes sauveclasse.reg

reg delete "HKCU\SOFTWARE\Classes\Wow6432Node\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}" /f

 

reg delete "HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}" /f

Sous Windows 7 32 bit

reg export HKCU\SOFTWARE\Classes sauveclasse.reg

reg delete "HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}" /f

 

Recréer l’enregistrement :

Sous Windows 7 64 bit

c:\windows\syswow64\regsvr32 vbscript.dll

c:\windows\system32\regsvr32 vbscript.dll

Sous Windows 7 32 bit

c:\windows\system32\regsvr32 vbscript.dll

Le redémarrage intempestif

C’est un problème d’installation de .NET framework 4.0 extended

Dans certains cas, même s’il est déjà présent sur votre poste, le programme d’installation ne le trouve pas.

Donc il l’installe, pas proprement, et lance un redémarrage du poste sans se soucier du reste. C’est en cherchant dans le fichier log de l’install que j’ai compris ce problème.

Donc il faut désinstaller .net 4.0, et le réinstaller proprement : ça parrait simple, mais ça ne l’est pas toujours …

Désinstaller :

Attention, Il ne faut désinstaller que la partie extended du framework

Panneau de configuration\Tous les Panneaux de configuration\Programmes et fonctionnalités

Rebootez votre machine

Puis téléchargez la version autonome de .net 4.0 (l’installation web n’a pas marché pour moi) :

http://www.microsoft.com/downloads/fr-fr/details.aspx?familyid=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=fr

Après l’installation, il faut chercher les mises à jour, avec windows update

Panneau de configuration\Tous les Panneaux de configuration\Windows Update

Installer celles de .net 4.0, et rebootez !

Votre prochaine tentative d’installation de building suite devrait être la bonne !

 

Poste avec plusieurs utilisateurs 

Un autre problème de la 2012, c'est que si vous installez Autocad dans avec une session "Pierre", Autocad ne sera pas forcément installé correctement dans la session "Paul". Au 1er lancement, vous aurez encore un message d'erreur 2738.

En fait, il faut exécuter la procédure vbscript.dll pour chaque utilisateur d'Autocad. Mais si vous avez lancé Autocad sans cette précaution, il vous faudra remettre les mains dans le cambouis: 

- Effacer le répertoire C:\Users\'utilisateur"\AppData\Roaming\Autodesk\"code produit en 3 lettres" 2012

- Effacer la clé du registre de chaque utilisateur:



HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R18.2\ACAD-A00X:40C


Voici les explications données par le support d'Autodesk:
Lorsque plusieurs produits de la famille AutoCAD sont installés en parallèle, seul un chiffre incrémentiel les distingue dans la clé  marqué par un "X". Pour les identifier cliquez simplement sur la clé puis dans les valeurs qui apparaissent à droite vous pourrez identifier le produit avec le chemin d'accès ou il est installé (par exemple la valeur "AllUsersFolder".

Cette clé est à supprimer pour tous les utilisateurs en se connectant à Windows (vous ne pouvez pas y accéder depuis un autre utilisateur, même administrateur).

 

Lorsque vous avez finit, vous n'avez plus qu'à relancer Autocad, et l'installation devrait aboutir sans problème.

 

G-EAUX

 

Partager cet article
Repost0
16 février 2012 4 16 /02 /février /2012 14:32

Utiliser les benchmarks Cadalyst  avec des versions françaises ou internationales d’Autocad

Le benchmark cadalyst est un vieux compagnon pour ceux qui veulent connaitre le point faible de leur station de travail, et vérifier qu’une astuce de configuration à bien un effet quantifiable sur les performances de leur station graphique.

On trouve ces benchmark ici : http://www.cadalyst.com/benchmark-test

Mais si vous utilisez une version non anglaise, vous ne pourrez les utiliser tels quels.

Problématique

Le benchmark va tout simplement planter rapidement, car les commandes Autocad utilisées ne sont pas internationalisées : en gros, « line » ne  marche pas, il faut écrire « _line »

Dès 2005, et ma 1ère internationalisation du benchmark, j’ai renvoyé mon travail à cadalyst pour qu’ils l’intègrent, mais ils ne l’ont pas fait.

A chaque version, il faut se taper le boulot, et ce n’est pas si facile, car un il y a également les arguments, et des commandes écrites à la volée dans des scripts, enfin, c’est très fastidieux.

 

Donc voici les benchmarks :

 

Dernière version :

 

 

2012 (2000 à 2013) http://www.g-eaux.com/powerclic/download/Cadalyst_C2012_v5,4_international.zip

 

Archives :

 

2011 (2000 à 2011) http://www.g-eaux.com/powerclic/download/Cadalyst_C2011_international.zip

 

2010 (2000 à 2010) http://www.g-eaux.com/powerclic/download/Cadalyst_C2010_international.zip

 

 

 

Limitations

La version 2011 est une conversion simplifiée, copiée de la version 2010 :

Elle fonctionne parfaitement, mais certains  messages, (dates, versions) peuvent être incorrects.

 

Instructions d’utilisations

Après téléchargement, décompactez dans un répertoire de votre choix.

 

Pour  lancer le benchmark,  Il faut activer le mode SDI = 1, pour avoir un seul dessin ouvrable par session :

Lancer Autocad, tapez SDI, 1 et quittez Autocad

Ensuite il y  a des spécificités pour chaque version d’autocad :

 

Autocad 2010

 

Pour simplifier le processus, j’ai ajouté un dessin, «start.dwg » dans le répertoire du Benchmark :

Il vous suffit de l’ouvrir avec Autocad, puis de charger C2010_go.lsp :

Remplissez les champs demandés, et c’est partit : prévoyez autour d’une heure pour la version la moins longue du benchmark.

 

Autocad 2011et 2012

 

Dans ce cas, l’astuce de start.dwg ne marche pas, il faut créer un raccourci Autocad spécifique, qui précise le répertoire de démarrage d’Autocad .

Mais comme j’ai expérimenté d’autres problèmes avec Autocad 2011, avant de créer ce raccourci, je vous propose de créer également un profil spécifique au benchmark, que vous appellerez « bench »

Dans ce profil,  fermez toutes les palettes, et surtout celle des xref : elle est incompatible avec le mode SDI.

Vous, pouvez également supprimer le chargement de certaines applis, qui parce qu’elles ont un ou deux « return » de trop, relance une commande au chargement d’un dessin, qui perturbe le benchmark .

 

Voilà votre  raccourci :

/p bench pour le profil, et le nom du répertoire contenant le benchmark dans la ligne suivante :

 

raccourcis

 

Une fois ce raccourci créé, vous n’avez plus qu’à lancer autocad avec, puis de charger C2011_go.lsp

Remplissez soigneusement les informations, et surtout la ligne commentaire ou vous détaillerez ce que vous avez changé dans votre configuration.

Chaque fois que vous relancerez  le test, les résultats sont ajoutés au fichier c2012_data.dta

 

Résultats avec Autocad 2011, 2012 et 2013 :

Pour avoir plus d'informations sur la manière d'utiliser le benchmark, et comment interpreter ses résultats, allez voir ces 2 articles:

Benchmark Cadalyst : Test avec Autocad 2011, 2012 et 2013, premiers résultats.

Benchmark Cadalyst : Test avec Autocad 2011, 2012 et 2013, sans aero peek

Exemple de résulat :

CADALYST Systems Benchmark 2012

Test version 5.4 ;  Jul-2011

(c)Copyright 1996-2011, Art Liddle and CADALYST Magazine

***************************************************

OS Platform               : Microsoft Windows NT Version 6.0 (x64)

AutoCAD version           : 18.2s

Graphics Window size      : 1260x504 pixels

Test Date (Time)          : 02-17-12 (9:56am)

Computer Brand            : serveur

CPU Type                  : xéon 2.4gz

System RAM                : 4go

Graphics Card             : fx 4500

Graphics Card driver      : autodesk

Number of Test Loops      : 1

Comment                   : Serveur avec 2012

**********************************************************************************

CADALYST Systems Benchmark 2012

Test version 5.4 ;  Jul-2011

(c)Copyright 1996-2011, Art Liddle and CADALYST Magazine

***************************************************

OS Platform               : Microsoft Windows NT Version 6.0 (x64)

AutoCAD version           : 18.2s

Graphics Window size      : 1260x504 pixels

Test Date (Time)          : 02-17-12 (10:01am)

Computer Brand            : serveur

CPU Type                  : xéon 2.4gz

System RAM                : 4go

Graphics Card             : fx 4500

Graphics Card driver      : autodesk

Number of Test Loops      : 1

Comment                   : Serveur avec 2012

**********************************************************************************

Drawing (3D)===>>          c2012_5    c2012_6    c2012_7    c2012_8

Drawing (2D)===>>          c2012_1    c2012_2    c2012_3    c2012_4      Test Index

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Rotate Wireframe   (3D) :     237        229        180        154          194

Rotate Hidden      (3D) :     493        432        707        364          470

Rotate Conceptual  (3D) :     495        468        710        387          491

Rotate Realistic   (3D) :      45         47         25        283           46

2D Array/save    (Disk) :      74         77         77         97           80

DXFout           (Disk) :    2863       2289       3663        961          1905

Save Drawing     (Disk) :      97         84         81        100           90

Calculations      (CPU) :     149        152        144        144          147

Ortho lines        (2D) :     325        275        394        315          322

Radial plines      (2D) :     277        244        333        268          277

Text and Blocks    (2D) :     101        114        118        131          115

Erase/Zoom         (2D) :      96         91        138        181          117

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Individual Dwg Index          185        177        214        195

 

********************************

C2012 Total Index   =  185

********************************

3D Graphics Index   =  300

2D Graphics Index   =  167

Disk Index          =  125

CPU Index           =  147

********************************

(Single Loop Time   =   30 min)

 

 G-EAUX

Partager cet article
Repost0
15 février 2012 3 15 /02 /février /2012 15:14

Installer les pilotes « Nvidia  performance drivers » sur des applications métiers d’Autocad

Avant-propos

Les carte graphique quadro ont beau couter cher, elles paraissent souvent décevante en matière de performance 3d.

Surtout quand on est sûr d’avoir téléchargé le nec+ultra des drivers, le performance driver de chez Nvidia …

Vous l’avez installé sans encombres, et là vous vous dite «  je vais enfin afficher en 3d aussi vite que mon neveux sur son vieux céléron, quand il construit une maison dans Simcity !)

 

Un coup d’orbite 3d, et on voit l’affichage devenir cubique, saccadé, et parfois, Autocad ne récupère pas la main !

Tout ça avec une Nvidia Quadro 2000, un Xéon 4 cœurs, 8 go de mémoire, et Seven 64 !

La raison ? Vous utilisez Autocad, mais pas Autocad tout seul, vous utilisez Autocad civil 3d, Autocad Map ou Mep ou architectural …

Et l’installation du driver ne s’est pas déroulée convenablement.

 

Limitation

Nvidia n’a pas encore sorti de driver pour Autocad 2012

 

Alors maintenant, on l’installe …

On commence par télécharger le bon driver :

http://www.nvidia.com/object/autocad_pd_perf_drivers.html

 

Puis  on peut jeter un œil à ce lien :

http://forums.autodesk.com/t5/AutoCAD-2010/Problems-with-certified-graphics-hardware/m-p/3007906#M29415

 

C’est celui qui m’a servi à mettre au point cette combine.

Mais comme il s’agit d’un forum, en anglais, avec beaucoup de remarque satellites, je donne ma version :

 

1. Aller dans le répertoire “Program Files/Autodesk” et renommez le répertoire

« AutoCAD Civil 3D 2011 » ou "AutoCAD Architecture 2011" en :

"AutoCAD 2011".

 

2. Lancez  l’installation de “Nvidia Performance drivers for Autocad.”

- Après la page acceptation de la licence, une liste d’installation d’Autocad apparait:

- Avant de cocher et de continuer, il faut renommer le répertoire avec le nom original :

"AutoCAD 2011"  -> « AutoCAD Civil 3D 2011 » ou "AutoCAD Architecture 2011 »

3. Finissez l’installation, lancez Autocad.

4. Il faut maintenant activer manuellement le driver nvgl10.hdi :

Dans la ligne de commande, tapez :

_3dconfig

Dans la case de dialogue, activez l’accélération matérielle, et choisissez nvgl10.hdi

 

Ouvrez le dessin 3d don’t la lenteur d’affichage vous a poussé à rechercher cette solution, et là miracle, l’affichage 3d est fluide !

Mais il y a encore un truc qui me chiffonne …

 

Le journal d’ajustement n’est pas à jour :

Pour cela il faut suivre ce lien :

http://help.autodesk.com/kb/display.do?ROW_ID=1-OHKXMC

Et l’adapter à votre version d’autocad :

HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.X  pour les version 2007 à 2009

HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R18.0  pour la version 2010

HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R18.1  pour la version 2011

 

Lors de l’ajustement avec _3dconfig, il y a des avertissements de partout, et Autocad ne reconnaît ni mon matériel ni mon driver

Si vous trouvez l’explication à ça, faites le moi savoir :

Avec des cartes quadro 4500, 1700 et 2000, Autocad 2009 à 2011, sur xp, vista et seven, jamais je n’ai eu le message « tout va bien » sauf avec  le pilote Autodesk.hdi,  dont la lenteur est exaspérante.

Malgré tout, sur certains dessin, l’affichage 3d reste lent …

Et bien l’explication est très simple, elle c’est la raison pour laquelle sur certains forums, on voit une incompréhension mutuelle entre dessinateurs qui se plaignent de la lenteur d’Autocad, alors que d’autre disent que tout va bien avec la même configuration :

Ce qui ralentis le plus l’affichage 3d d’Autocad, ce sont les entités 2d !

Gelez les calques 2d, et vous constaterez une incroyable fluidité, même avec beaucoup d’entités 3d.

Dans la cartographie et le génie-civil, on a souvent beaucoup de calques 2d, avec un modèle 3d volumineux au dessus : On a donc en général de gros problèmes d’affichage.

 

 G-EAUX

 

Partager cet article
Repost0
10 février 2012 5 10 /02 /février /2012 09:29

Documentation sur les fonctions « acet-* » des expresstools.


Ce n'est pas la première fois que mon attention est attirée par une de ces fonctions, notamment celles traitant d'erreurs ou de fichiers ini.

J’ai même retrouvé sur mon disque le fichier « acetutil.chm » qui date de 2000, et pourtant, jamais je n’ai utilisé ces fonctions acet- .

Quel gâchis! Tout ce temps que j’ai passé à créer des fonctions de gestion d’erreur, de lecture/écriture dans des fichiers ini, de changement/restauration de variables système, ou encore des fonctions de recherche de mots dans des chaines de caractère :

Tout cela existe dans les expresstools.

Une bonne partie de ces commandes a été parfaitement documentée en 2000, par un inconnu que je remercie : le fichier d’aide CHM est là :acetutil.chm


Il documente les fonctions suivantes :


ACET-ENT-GEOMEXTENTS

ACET-REG-PRODKEY

ACET-SYS-LASTERR

ACET-FILE-ATTR

ACET-REG-PUT

ACET-SYS-PROCID

ACET-FILE-CHDIR

ACET-SS-DRAG-MOVE

ACET-SYS-SLEEP

ACET-FILE-COPY

ACET-SS-DRAG-ROTATE

ACET-SYS-SPAWN

ACET-FILE-DIR

ACET-SS-DRAG-SCALE

ACET-SYS-TERM

ACET-FILE-MKDIR

ACET-STR-COLLATE

ACET-SYS-WAIT

ACET-FILE-MOVE

ACET-STR-EQUAL

ACET-UI-MESSAGE

ACET-FILE-REMOVE

ACET-STR-FIND

ACET-UI-PICKDIR

ACET-FILE-RMDIR

ACET-STR-FORMAT

ACET-UI-PROGRESS

ACET-HELP

ACET-STR-REPLACE

ACET-UI-STATUS

ACET-HELP-TRAP

ACET-STR-WCMATCH

ACET-UI-TXTED

ACET-INI-GET

ACET-SYS-BEEP

ACET-UTIL-VER

ACET-INI-SET

ACET-SYS-COMMAND

ACET-ERROR-INIT

ACET-REG-DEL

ACET-SYS-FOREGROUND

ACET-ERROR-RESTORE

ACET-REG-GET

ACET-SYS-KEYSTATE

 

 

Et les autres ?

L’aide de 2000 ne parle que des commandes arx, car elles ont l’avantage de retourner des indications sur leur syntaxe lorsque l’on les lance avec de mauvais arguments.

On trouve aussi des commandes qui sont maintenant documentée dans la documentation VLISP:


ACAD-POP-DBMOD

LAYERSTATE-ADDLAYERS

LAYERSTATE-REMOVELAYERS

ACAD-PUSH-DBMOD

LAYERSTATE-COMPARE

LAYERSTATE-RENAME

ACAD_COLORDLG

LAYERSTATE-DELETE

LAYERSTATE-RESTORE

ACAD_STRLSORT

LAYERSTATE-EXPORT

LAYERSTATE-SAVE

ACAD_TRUECOLORCLI

LAYERSTATE-GETLASTRESTORED

LAYOUTLIST

ACAD_TRUECOLORDLG

LAYERSTATE-GETLAYERS

STARTAPP

ACDIMENABLEUPDATE

LAYERSTATE-GETNAMES

_AUTOARXLOAD

ACET-LAYERP-MARK

LAYERSTATE-HAS

_VER

ACET-LAYERP-MODE

LAYERSTATE-IMPORT

ACAD_HELPDLG

INITCOMMANDVERSION

LAYERSTATE-IMPORTFROMDB

 

 

 

Il y a aussi de nouvelles fonctions arx qui sont apparues depuis 2000 :


ACET-ENT-CURVEPOINTS

ACET-FILE-WRITEDIALOG

ACET-VAR-GETVAR

ACET-FILE-CWD

ACET-SS-CLEAR-PREV

ACET-VAR-SETVAR

ACET-FILE-READDIALOG

   

 

Pour les fonctions lisp, c’est plus compliqué. J’ai pu répertorier le nombre de leurs arguments, et tester le message retourné par Autocad lors de leur exécution.

J’ai donc tout regroupé dans ce fichier excel aide_acet_G-EAUX.xls, avec plusieurs onglets :


Aide Autocad Visual Lisp

Aide acetutils 2000

ARX sans aide

LISP sans aide


Ci-dessous la liste des fonctions lisp sans aides qui ont été recensées et testées :


Partager cet article
Repost0
2 février 2012 4 02 /02 /février /2012 15:08

Handle_explorer : Explorer votre dessin en parcourant les identifiants

Cet article s’adresse aux programmeurs Autocad en herbe ou confirmés, qu’ils programment en Lisp en VBA ou en .Net

 

Problématique.

Il arrive parfois que l’on ait un besoin de développement avec des entités non documentées, ou un problème avec un dessin, ou un contrôle de dessin qui affiche des erreurs auxquelles on ne comprend rien.

Par exemple, le message « xdata problem, fix or remove » et le message « entité en propriété multiple »

A chaque fois, Autocad nous donne le maintien (identifiant) de l’entité.

Parfois, la facétie d’Autocad fait que cette entité est une  sous entité d’un bloc, d’un dictionnaire d’extension, ou d’un xrecord

Dans ce cas-là, trouver l’origine du problème peut être très long…

C’est là qu’handle explorer intervient : parcourir les entités propriétaires et les sous-entités d’une entité.

Il existe, en VBA et sous visual lisp, des possibilités d’explorer les entités : Le problème, en VBA, c’est que la forme d’affichage n’est pas très parlante, et dans les 2 systèmes, on a pas accès aux valeurs qui sont lues et écrites par des méthodes.

Et pour les entités issues d’applications tierces, vous n’aurez rien à vous mettre sous la dent.

Handle_explorer je l’ai créé en 2007 pour percer le mystère des filtres de propriétés de calques en cascade, car leur emplacement n’était pas documenté par Autodesk.

Pré-requis :

Avoir PowerClic installé et fonctionnel, pour que les fonctions commençant par PW_ soient chargées.

Connaître au moins un peu le lisp, et connaître un peu la structure DXF.

Principe :

Handle_explorer vous demande le maintien d’une entité, ou part de l’objet « Dictionaries », qui est un peu le point de départ d’une bonne exploration.

Chaque fois qu’handle explorer trouve un renvoi vers une autre entité, il vous demande si vous voulez l’explorer.

Pour changer d’entité, il faut copier le maintien qui vous intéresse, et relancer handle_explorer avec le nouvel identifiant.

Une amélioration qui serait nécessaire, c’est l’affichage de l’arborescence de l’exploration, et le changement d’entité automatique : ça viendra peut-être …

Exemple :

Commande: HANDLE_EXPLORER

Commencer l'exploration par AcadDictionaries ?Oui/Non :O

Maintien de l'entité ? :

(-1 .
)
(0 . "DICTIONARY")
(330 . 0
>)
(5 . "C")
(100 . "AcDbDictionary")
(280 . 0)
(281 . 1)
(3 . "ACAD_COLOR")
(350 . )
(3 . "ACAD_GROUP")
(350 . )
(3 . "ACAD_IMAGE_VARS")
(350 . )
(3 . "ACAD_LAYOUT")
(350 . )
(3 . "ACAD_MATERIAL")
(350 . )
(3 . "ACAD_MLEADERSTYLE")
(350 . )
(3 . "ACAD_MLINESTYLE")
(350 . )
(3 . "ACAD_PLOTSETTINGS")
(350 . )
(3 . "ACAD_PLOTSTYLENAME")
(350 . )
(3 . "ACAD_SCALELIST")
(350 . )
(3 . "ACAD_TABLESTYLE")
(350 . )
(3 . "ACAD_VISUALSTYLE")
(350 . )
(3 . "AcDbVariableDictionary")
(350 . )
(3 . "Root")
(350 . )
(3 . "{24DE2741-47F6-4298-B91B-737E814BAE3E}")
(350 .
)
- * - * - * - * - * - * - * - * - * - * - * - * - *
Entité sans entget: ename = 0
Code 350 trouvé: 6B Afficher l'entget entité ?Oui/Non :

Etiquette associée à l'entité : (3 . "ACAD_COLOR")
(-1 . )
(0 . DICTIONARY)
(5 . 6B)
(102 . {ACAD_REACTORS)
(330 . )
(102 . })
(330 .
)
(100 . AcDbDictionary)
(280 . 0)
(281 . 1)
- - - - - - - - - - - - - -
Code 350 trouvé: D Afficher l'entget entité ?Oui/Non :n

Code 350 trouvé: 218
Afficher l'>entget
entité ?Oui/Non :

Code 350 trouvé: 1A
Afficher l'>entget
entité ?Oui/Non :

Code 350 trouvé: 6A
Afficher l'>entget
entité ?Oui/Non :

Code 350 trouvé: 12D
Afficher l'>entget
entité ?Oui/Non :*Annuler*

Un petit coup d‘echap pour arrêter : on veut explorer acad_color, on prend le maintien « 6B »

Commande: HANDLE_EXPLORER

Maintien de l'entité ? :6B

(-1 . )
(0 . "DICTIONARY")
(5 . "6B")
(102 . "{ACAD_REACTORS")
(330 . )
(102 . "}")
(330 .
)
(100 . "AcDbDictionary")
(280 . 0)
(281 . 1)
- * - * - * - * - * - * - * - * - * - * - * - * - *
Code 330 trouvé: C Afficher l'entget entité ?Oui/Non :n

Code 330 trouvé: C
Afficher l'>entget
entité ?Oui/Non :

Le dessin est vide, le dictionnaire acad_color n’a pas d’enfant, seulement un propriétaire, « C », que l’on connaît déjà : l’exploration est terminée.

 

Procédure

Placer le code qui suit dans un fichier lisp,(extension .lsp), charger le fichier (un drag'n drop marche très bien), et lancer la commande handle_explorer

Début du code :


; ****************************************************************************
;;§/dxf/Exploration autour d'un handle vers les entités présentes /none
;;les code rechercés sont 330 331 340 345 346 347 348 349 350 360 390

;;;330 ID/identificateur pointeur logiciel du dictionnaire propriétaire (facultatif)
;;;
;;;360 ID/identificateur de propriétés matérielles du dictionnaire propriétaire (facultatif)
;;;
;;;330 ID/identificateur pointeur logiciel de l'objet propriétaire
;;;
;;;350 ID/identificateur propriétaire logiciel de l'objet entrée (un pour chaque entrée) (facultatif)
;;autres codes :
;;;331 ID/identificateur de la dernière fenêtre active dans la présentation lorsque celle-ci était la présentation courante.
;;;
;;;345 ID/identificateur de l'énumération AcDbUCSTableRecord s'il s'agit d'un SCU nommé. En cas d'absence, le SCU n'est pas nommé
;;;
;;;346 ID/identificateur de l'énumération AcDbUCSTableRecord du SCU de base s'il s'agit d'un SCU orthogonal (code 76 différent de 0). En cas d'absence et si le code 76 est différent de 0, le SCU de base est du type GENERAL


(defun c:handle_explorer (/ eg i cont eg2 dxf id prec)
(if (not HDE-ident)
(if (= "Oui"
     (pw_getkwordmem
     "\nCommencer l'exploration par AcadDictionaries ?/Oui Non"
     "HDE-App"
     )
    )
(setq
    HDE-ident (vla-get-handle
         (vla-get-dictionaries
         (vla-get-ActiveDocument (vlax-get-acad-object))
         )
         )
)
)
)

(pw_getstringmem "\nMaintien de l'entité ?" "HDE-ident")
(setq eg (entget (handent HDE-ident)))
(foreach l eg
         (print l)
         )
(prompt
"\n - * - * - * - * - * - * - * - * - * - * - * - * - *"
)
(setq i 0
    cont "Oui"
)
(setq prec "")
(while (setq dxf (nth i eg))
(if (member (car dxf)
        '(330 331 340 345 346 347 348 349 350 360 390)
    )
(if (setq eg2 (entget (cdr dxf)))
    (progn (setq id (cdr (assoc 5 eg2)))
     (prompt
         (strcat "\n Code " (itoa (car dxf)) " trouvé: " id " ")
     )
     (prin1 (cdr dxf))
     (pw_getkwordmem
         "\nAfficher l'entget entité ?/Oui Non"
         "cont"
     )
     (if (= "Oui" cont)
         (progn
         (prompt (strcat "\n Etiquette associée à l'entité : "
                 (pw_fab_chaine prec)
             )
         )
         (foreach l eg2
         (prompt "\n ")
         (princ l)
         )
         (prompt "\n- - - - - - - - - - - - - -")
         )
     )
    )
    (prompt "\nEntité sans entget: ename = 0")
)
)
(setq prec dxf)
(setq i (+ 1 i))
)
)

g-eaux

Partager cet article
Repost0
1 février 2012 3 01 /02 /février /2012 17:32

 

Imprimer des profils en travers Covadis dans un carnet de détail.

Cette petite astuce peut également servir pour d'autres cas, mais c'est pour celui-là que je l'ai conçue.

 

Problématique.

Covadis possède une fonctionnalité de ce genre, mais si le projet vous arrive détruit, la fonction sera désactivée.

Il se peut aussi qu'on reçoive un projet covadis au format dwg, et qu’on n’ait pas Covadis …

Les profils en travers d'un projet de voirie peuvent vite être très nombreux : l'impression manuelle peut tourner au cauchemar.

L'approche normale pour le tracé est de créer une présentation :

Dans ce cas-là, vu le nombre d'onglet nécessaires, on fera une entorse à la règle, en traçant dans l'espace objet.

Apparemment la commande Covadis d'impression ne marchait plus dans les versions antérieures à la version 13.0f (voir le fichier "Corrections apportées à la version 13.pdf")

Pré-requis :

Avoir PowerClic installé et fonctionnel, pour que les fonctions commençant par PW_ soient chargées.

 

Principe :

chaque profil en travers est entouré par un rectangle dont le calque à un nom du genre « PROJET »_PT_1_Construction.

Le programme trace séquentiellement chaque cadre, dans un fichier pdf (placé dans un répertoire de votre choix, en incrémentant le nom de fichier.

Limitations :

Le programme ne gère que les A4 paysage. Pour d'autres formats, il faut l'adapter vous-même.

Voici le genre de cas traité :

 profils.png

Procédure


La mise en page est en principe automatique mais il est recommandé de préparer sa mise en page avec Dwg to pdf.pc3, aire de tracé fenêtre. Assurez vous d'être dans le SCU général.

Placer le code qui suit dans un fichier lisp,(extension .lsp), charger le fichier (un drag'n drop marche très bien), et lancer la commande cree_pdf_profils_travers

Le programme vous demande de sélectionner un répertoire pour les PDF, puis de sélectionner un des cadres.

Le tracé commence, ça peut être long, allez boire un café …

les cadre tracés passent en blanc.

Et mon carnet ?

Il reste à assembler les différents PDF : Un logiciel comme PDFTK Builder http://www.angusj.com/pdftkb/ fera très bien l'affaire.

Début du code :

;***************************************************************************
;§/COVADIS/Trace les PDF des profils en travers/none

(defun c:cree_pdf_profils_travers (/ sel lsel det i)
(if (not pdf-base-directory)
(setq pdf-base-directory (pw_get_directory "Sélectionnez le répertoire pour les PDF:" (getvar "dwgprefix")))
)
(setq Ac-layout (get_aclayout))
(setq ti-dpi 300)
(setq ti-limite "A4")
(setq ca (cdr (assoc 8 (entget (car (entsel "\nSélectionner un cadre des profils à imprimer : "))))))
(setq i 1)

(setq sel (ssget "x" (list (cons 8 ca)'(0 . "LWPOLYLINE"))))
(setq lsel (reverse (pw_listsel sel)))
(foreach det lsel
(setq eg (entget det))
(if (PW_EST_RECTANG eg)
(progn
    (setq cc-lastent det)
    ;;(pw_zoomon (list det))
    ;;(setq fen (pw_getboundingbox det))
    (setq lsom (mapcar 'pw_scg2scu (pw_lsomm det)))
    
    (setq fen (pw_englobe lsom))
    
    ;;(setq fen (pw_getboundingbox det))
    
    (setq plotfile (strcat pdf-base-directory (strcat ca "_" (pw_cg_chaine_car (itoa i) 4 "0"))))
    (plot_pdf_pays fen plotfile 1)
    (setq cc-lastent nil)
    (pw_entmodifi det 62 7)
    (setq i (+ i 1))
)
)
);_foreach
)


;;**************************************************************************
;§/traces/ sequence de commande pour tracer en pdf la fenêtre spécifiée/ zoneatracer plotfile ech
;;siech = 10 echelle = 1:10
;;siech = 100 echelle = 1:100
;;siech = nil echelle = ajuster
;
(defun plot_pdf_pays ( zoneat plotfile ech / tmp sat lfa Xat Yat Fat Tat lplot)
;;les choix statiques de mise en page
(set_layout_property_pdf Ac-layout )
(vla-put-canonicalmedianame Ac-layout "ISO_full_bleed_A4_(297.00_x_210.00_MM)")
(vla-put-plottype Ac-layout acWindow)

(setq Fat zoneat);;_cas particulier, différent du raster
(setq fat (mapcar 'pw_pt_2d fat))
;;(setq Tat (cadr zoneat))
;;surface à tracer
;;(setq sat (* (setq Xat (car tat))(setq Yat (cadr tat))))
;;coef y = ax de la zone à tracer
;;;(if (< Xat Yat)
;;;  (setq sat-orientation "POR")
     (setq sat-orientation "PAY")
;;;)
;;curieusement, dans les 2 cas, il faut mettre 0 !
(cond
    ((= "POR" sat-orientation)
     (vla-put-plotrotation Ac-layout 0)
    )
    ((= "PAY" sat-orientation)
     (vla-put-plotrotation Ac-layout 0)
    )   
)
(set_layout_WindowToPlot Ac-layout Fat)
(if ech
(vla-SetCustomScale ac-layout 1 ech)
)
(setq lplot (pw_scie_fich plotfile))
(setq plotfile (strcat (car lplot) (cadr lplot)))
(plot_to_file plotfile)
)

;;**************************************************************************
;§/traces/etabli les propriétés voulues de l'onglet spécifié / Ac-layout
;;
(defun set_layout_property (Ac-layout / lstate )

(setq lstate
     '(("USESTANDARDSCALE" :vlax-true)
     ("STANDARDSCALE" 0)
     ("SCALELINEWEIGHTS"
     :vlax-false
     )
     ("PLOTWITHPLOTSTYLES" :vlax-false)
     ("PLOTWITHLINEWEIGHTS"
     :vlax-true
     )
     ("PLOTHIDDEN" :vlax-false)
     ("CONFIGNAME" "Tracer_png_scercl.pc3")
     ("CENTERPLOT" :vlax-true)
     )
)
(pw_put_property_state Ac-layout lstate)
)
;;**************************************************************************
;§/traces/etabli les propriétés voulues de l'onglet spécifié pour PDF / Ac-layout
;;
(defun set_layout_property_pdf (Ac-layout / lstate )

(setq lstate
     '(("USESTANDARDSCALE" :vlax-true)
     ("STANDARDSCALE" 0)
     ("SCALELINEWEIGHTS"
     :vlax-false
     )
     ("PLOTWITHPLOTSTYLES" :vlax-false)
     ("PLOTWITHLINEWEIGHTS"
     :vlax-true
     )
     ("PLOTHIDDEN" :vlax-false)
     ("CONFIGNAME" "DWG to PDF.pc3")
     ("CENTERPLOT" :vlax-true)
     )
)
(pw_put_property_state Ac-layout lstate)
)
;;**************************************************************************
;§/traces/etabli le nom du format de papier de l'onglet courant / Ac-layout medianame
;;medianame : littéral : "UserDefinedRaster (862.00 x 558.00Pixels)"

(defun set_layout_medianame (Ac-layout medianame / )
(vla-put-canonicalmedianame Ac-layout medianame)
)

;;**************************************************************************
;§/traces/etabli la rotation de l'onglet courant / Ac-layout rotation
;;rotation :
;;ac0degrees = 0
;;ac90degrees = 1
;;ac180degrees = 2
;;ac270degrees = 3
(defun set_layout_rotation (Ac-layout rotation / )
(vla-put-plotrotation Ac-layout rotation)
)

;;**************************************************************************
;§/traces/etabli la zone (le type) à tracer de l'onglet courant / Ac-layout zone-type
;;zone-type :
;;;acDisplay : 0 Prints everything that is in the current display.
;;;acExtents : 1 Prints everything that falls within the extents of the currently selected space.
;;;acLimits : 2 Prints everything that is in the limits of the current space.
;;;acView : 3 Prints the view named by the ViewToPlot property.
;;;acWindow : 4 Prints everything in the window specified by the SetWindowToPlot method.
;;;acLayout : 5 Prints everything that falls within the margins of the specified paper size with
;;;

(defun set_layout_type (Ac-layout zone-type / )
(vla-put-plottype Ac-layout zone-type)
)

;;**************************************************************************
;§/traces/retourne l'onglet courant / none
;;
(defun get_aclayout ( / acadObject acadDocument)
(setq acadObject (vlax-get-acad-object)) ;;accède au début de objets?
(setq acadDocument (vla-get-ActiveDocument acadObject)) ;;accède au document actif
(vlax-Get-property acadDocument 'ActiveLayout)
)
;;**************************************************************************
;§/traces/etabli la fenêtre à tracer / Ac-layout lfen
;;
(defun set_layout_WindowToPlot ( Ac-layout lfen / LowerLeft UpperRight pb ph dep )
(setq pb (car lfen)
    ph (cadr lfen))
(setq dep (getvar "target"))
(setq dpx (car dep)
    dpy (cadr dep))
(setq pb (pw_prp pb (- dpx) (- dpy)))
(setq ph (pw_prp ph (- dpx) (- dpy)))



(setq LowerLeft (vlax-make-safearray vlax-vbDouble '(0 . 1)))
(vlax-safearray-fill LowerLeft pb)
(setq UpperRight (vlax-make-safearray vlax-vbDouble '(0 . 1)))
(vlax-safearray-fill UpperRight ph)
(vla-SetWindowToPlot Ac-layout LowerLeft UpperRight)
;(vla-getWindowToPlot Ac-layout 'LowerLeft 'UpperRight)
;vlax-safearray-fill
;vlax-safearray-put-element
)

G-eaux

Partager cet article
Repost0
27 janvier 2012 5 27 /01 /janvier /2012 09:07

J'ai créé PowerClic en 1992.
C'était une autre époque, on développait dans le shell MsDos, Visual Lisp n'existait pas, et l'interface d'Autocad était rugueuse.
Depuis, peu à peu, Autodesk a intégré des fonctionnalités de PowerClic :

Menu contextuel
Sélection rapide
Palettes d'outils
Sélectionner similaire
Ajouter sélection.
Amélioration des outils de groupes.

Maintenant, tous les dessinateurs ne travaillent pas sur les dernières versions d'Autocad, il reste beaucoup de versions 2004 à 2007 en service, PowerClic est encore très utiles dans ce cas.

PowerClic reste plus rapide et plus précis que les outils Autocad, et surtout, il limite les déplacement de souris, on peut travailler à 90% dans la zone centrale de l'écran.
Les dessinateurs ayant comme moi des problèmes de tendinite savent de quoi je parle.
PowerClic conserve une longueur d'avance avec l'action contextuelle, ainsi que les plug-in sur sélection.

Dans ce blog, je vais proposer des exemples de code, d'utilitaires, qui seront basé sur la bibliothèque de fonctions de PowerClic. Il faut donc que PowerClic soit installé pour pouvoir tester les articles à venir de ce blog

Par le passé, j'ai passé beaucoup de temps à automatiser l'installation de PowerClic, malgré les écueils de l'époque, plateformes Dos à Unix en passant par Mac, mauvaise gestion des menus.
L'apogée du système à été atteinte sur les plate formes 32 bits jusqu’à Autocad 2009 , dernière version intégrant VBA.
PowerClic pouvait rester sur une clé USB et ne nécessitait aucune compétence pour être installé
Depuis, le VBA a disparu, et avec lui certaines fonctionnalités de PowerClic, tout n'a pas encore pu être remplacé par .Net.
Sur les plate-formes x64, l'applicatif PowerClic.exe ne fonctionne plus, car le système lui interdit l'accès à certaines infos de la base de donnée.
Sous Autocad 2012, le passage à .Net 4.0 empêche les applications de se charger avec la version originale du fichier acad.exe.config.
Je n'ai plus le temps de corriger ces problèmes, qui sont facilement contournables, avec quelques explications.
Donc les voici:

 

Télécharger PowerClic:

Page de téléchargement PowerClic

Note de février 2014 : il existe maintenant une version 7.21


Installation normale (W32 bit, Autocad <= 2009)
Pour Installer PowerClic sur les plate formes 32 bits jusqu’à Autocad 2009, il n'y a rien à faire d'autre que de télécharger la dernière version (7.14), fermer Autocad, et lancer PowerClic.exe, puis choisir sa version d'Autocad dans la fenêtre Ms Dos qui s'ouvre, et c'est partit.
Ce mode de fonctionnement est adapté aux intérimaire, aux nomades qui utilisent PowerClic depuis une clé USB.

Une fois PowerClic installé, pour avoir un chargement automatique (pour les utilisateurs non nomade), il faut taper pwmn depuis la ligne de commande Autocad, et cocher la case "chargement automatique avec acaddoc.lsp".
Installation sur les plateformes x64
Pour l'instant, la procédure ci dessus ne marche pas avec les plateformes 64 bits :
Il faut passer par une installation semi-manuelle :

Sous windows, lancez PowerClicSetup.exe:
Après un certains nombre de questions, il installe PowerClic dans le répertoire de votre choix puis affiche une fenêtre MsDos (noire)
C'est à ce moment que l'installation automatique s'arrete: Pour poursuivre :
Fermer la fenêtre MsDos
Lancez Autocad.
Avec autocad, ouvrez le dessin pwr_clic.dwg, dans le répertoire d'installation de PowerClic.
Depuis la ligne de commande d'Autocad, tapez la commande "script" , et choisissez PowerClicSetupManuel.scr:


Sans nom 5 html m1e387aa0


Si le fichier Acaddoc.lsp est déjà présent, il sera modifié pour ajouter PowerClic :


Sans nom 5 html 15296b03

Si le fichier Acaddoc.lsp est absent il sera créé :


Sans-nom-5_html_m657a0dec.jpg


Une fois le script exécuté,
l'installation est terminée, Powerclic se chargera automatiquement lors de l'ouverture de chaque dessin.

Installation pour Autocad 2012.

Le passage de .Net 3.5 à 4.0 à créé un nouveau problème: Au chargement de PowerClic.dll, vous avez un message qui commence par : "Cannot load assembly. Error details: System.IO.FileLoadException: ..."
Pour pouvoir charger PowerClic.dll, il faut modifier le fichier acad.exe.config vous pouvez , après avoir sauvegardé le fichier original, remplacer votre fichier avec celui fournit avec PowerClic

Voir l'article : Throught the interface

Le fichier acad.exe.config se trouve dans le même répertoire que acad.exe
Il faut donc faire une recherche dans le répertoire programmes,
puis vous pouvez soit editer le fichier existant, pour qu'il ai ce contenu :

<configuration>

  <startup useLegacyV2RuntimeActivationPolicy="true">

    <supportedRuntime version="v4.0"/>

  </startup>

  <runtime>         

    <loadFromRemoteSources enabled="true"/>

  </runtime

  <system.diagnostics>

    <sources>

      <source name="System.Windows.Data" switchName="SourceSwitch">

        <listeners>

          <remove name="Default"/>

        </listeners>

      </source>

    </sources>

  </system.diagnostics>

</configuration>


Ou alors le remplacer par le fichier inclus avec PowerClic.
Dans tous les cas, il faut sauvegarder votre fichier original !


G-EAUX
 

Partager cet article
Repost0
24 janvier 2012 2 24 /01 /janvier /2012 16:53

J'ouvre aujourd'hui ce blog consacré à Autocad, et la personnalisation en Lisp, ainsi que mon métier au sens large, à savoir le domaine de l'eau et l'assainissement, la cartographie, les S.I.G, la topographie, le bâtiment, la tuyauterie ...


Pendant des années, j'ai posté sans compter sur les newsgroups en NNTP.
Puis sont venus les affreux newsgroups html, et leurs défauts endémiques :
- Difficulté de suivre le fil de discussions
- Commercialisation d'un contenu bénévole.

C'est pourquoi j'ai décidé d'utiliser le système du blog, afin de partager mes connaissances, sans qu’elles soient exploitées commercialement.

Dans un premier temps, je vais republier de vieilles contributions qui sont toujours utiles, et qui ont été postés sur le newsgroup "Planetar", longtemps le seul newsgroup Autocad francophone, modéré par le sympathique Ivan Meseguer.

Puis j'ajouterai d'autres articles, que j'ai en réserve depuis 3 ans.

 

Gérald Lemoine

Partager cet article
Repost0

_ACETAUTOARXLOAD 

ACET-GEOM-LIST-EXTENTS 

ACET-REG-TREE-SET 

_ACETAUTOLOAD 

ACET-GEOM-LIST-FUZ 

ACET-RE-MAKE 

_ACETAUTOQLOAD 

ACET-GEOM-MATRIX-TRANS 

ACET-RTOD 

ACET-ACADREACTOR-ID-ADD 

ACET-GEOM-MIDPOINT 

ACET-SACET-CMDECHO 

ACET-ACADREACTOR-ID-REMOVE 

ACET-GEOM-M-TRANS 

ACET-SAFE-COMMAND 

ACET-ACADREACTOR-ID-REMOVE-ALL 

ACET-GEOM-MTXTBOX 

ACET-SETVAR 

ACET-ACADREACTOR-IDS-GET 

ACET-GEOM-OBJECT-END-POINTS 

ACET-SETVAR-CPROFILE 

ACET-ACADREACTOR-ID-SWAP 

ACET-GEOM-OBJECT-FUZ 

ACET-SETVAR-DWG 

ACET-ACAD-REFRESH 

ACET-GEOM-OBJECT-NORMAL-VECTOR 

ACET-SETVAR-FIXED-PROFILE 

ACET-ADDGBINEXPRESS 

ACET-GEOM-OBJECT-POINT-LIST 

ACET-SPINNER 

ACETAI_FFILE 

ACET-GEOM-OBJECT-Z-AXIS 

ACET-SS-ANNOTATION-FILTER 

ACETAI_NOFILE 

ACET-GEOM-PIXEL-UNIT 

ACET-SS-CONVERT-ELLIPSES-TO-PLINES 

ACET-ALERT 

ACET-GEOM-PLINE-ARC-INFO 

ACET-SS-ENTDEL 

ACET-ALT-VIEWPORT 

ACET-GEOM-PLINE-POINT-LIST 

ACET-SS-FILTER 

ACET-ANGLE-EQUAL 

ACET-GEOM-POINT-FUZ 

ACET-SS-FILTER-CURRENT-UCS 

ACET-ANGLE-FORMAT 

ACET-GEOM-POINT-INSIDE 

ACET-SS-FILTER-ITEM 

ACET-APPID-DELETE 

ACET-GEOM-POINT-ROTATE 

ACET-SS-FILTER-VALIDATE 

ACET-ARXLOAD-OR-BUST 

ACET-GEOM-POINT-SCALE 

ACET-SS-FLT-CSPACE 

ACET-ARX-RE-LOAD 

ACET-GEOM-RECT-POINTS 

ACET-SS-INTERSECTION 

ACETAUTOARXACEDLOAD 

ACET-GEOM-SELF-INTERSECT 

ACET-SS-NEW 

ACETAUTOARXLOAD 

ACET-GEOM-SPLINE-POINT-LIST 

ACET-SS-REDRAW 

ACETAUTOLOAD 

ACET-GEOM-SS-EXTENTS 

ACET-SS-REMOVE 

ACET-AUTOLOAD 

ACET-GEOM-SS-EXTENTS-ACCURATE 

ACET-SS-REMOVE-DUPS 

ACET-AUTOLOAD2 

ACET-GEOM-SS-EXTENTS-FAST 

ACET-SS-REMOVE-DUPS-EXTENTS-LIST 

ACET-AUTOLOAD-APPLY 

ACET-GEOM-TEXTBOX 

ACET-SS-REMOVE-DUPS-GENERALIZE-ENT 

ACET-AUTOLOAD-EXEC 

ACET-GEOM-TRANS-IMAGE-TO-UCS 

ACET-SS-REMOVE-DUPS-REVERSE 

ACETAUTONATIVELOAD 

ACET-GEOM-TRANS-UCS-TO-IMAGE 

ACET-SS-SCALE-TO-FIT 

ACET-BLINK-AND-SHOW-OBJECT 

ACET-GEOM-TXTBOX 

ACET-SS-SCALE-TO-FIT-BASE 

ACET-BLOCK-MAKE-ANON 

ACET-GEOM-UNIT-VECTOR 

ACET-SS-SORT 

ACET-BLOCK-PURGE 

ACET-GEOM-VECTOR-ADD 

ACET-SS-SSGACET-FILTER 

ACET-BS-STRIP 

ACET-GEOM-VECTOR-D-ANGLE 

ACET-SS-TO-LIST 

ACET-CALC-BITLIST 

ACET-GEOM-VECTOR-PARALLEL 

ACET-SS-UNION 

ACET-CALC-ROUND 

ACET-GEOM-VECTOR-SCALE 

ACET-SS-VISIBLE 

ACET-CALC-TAN 

ACET-GEOM-VECTOR-SIDE 

ACET-SS-ZOOM-EXTENTS 

ACET-CMD-CHECK 

ACET-GEOM-VERTEX-LIST 

ACET-STR-ENV-EXPAND 

ACET-CMD-EXIT 

ACET-GEOM-VIEW-POINTS 

ACET-STR-ESC-WILDCARDS 

ACET-CURRENTVIEWPORT-ENAME 

ACET-GEOM-Z-AXIS 

ACET-STR-IS-PRINTABLE 

ACET-DCL-LIST-MAKE 

ACET-GEOM-ZOOM-FOR-SELECT 

ACET-STR-LIST-SELECT 

ACET-DICT-ENAME 

ACET-GETVAR 

ACET-STR-LR-TRIM 

ACET-DICT-MAKE 

ACET-GETVAR-CPROFILE 

ACET-STR-M-FIND 

ACET-DICT-NAME-LIST 

ACET-GETVAR-DWG 

ACET-STR-SPACE-TRIM 

ACET-DISABLED-COMMAND 

ACET-GETVAR-FIXED-PROFILE 

ACET-STR-TO-LIST 

ACET-DTOR 

ACET-GO-TO-EXPRESS-PAGE 

ACET-SYS-CONTROL-DOWN

ACET-DXF 

ACET-GROUP-MAKE-ANON 

ACET-SYS-LMOUSE-DOWN 

ACET-EDITOR-REACTOR-ADD 

ACET-HATCH-LOOPEDGE-MAKE 

ACET-SYS-SHIFT-DOWN 

ACET-ELIST-ADD-DEFAULTS 

ACET-HATCH-LOOP-MAKE 

ACET-SYSVAR-RESTORE 

ACET-ELIST-FILTER--4-MATCH 

ACET-HATCH-LOOP-MAKE-DATA-GET 

ACET-SYSVAR-SET 

ACET-ELIST-FILTER-AND-MATCH 

ACET-HOW-TO-GACET-EXPRESS 

ACET-TABLE-NAME-LIST 

ACET-ELIST-FILTER-GC-MATCH 

ACET-INIT 

ACET-TABLE-PURGE 

ACET-ELIST-FILTER-MATCH 

ACET-INIT-ACETUTIL-ARX 

ACET-TEMP-SEGMENT 

ACET-ELIST-FILTER-NOT-MATCH 

ACET-INIT-ADD-LIB-DIR 

ACET-TJUST 

ACET-ELIST-FILTER-OR-MATCH 

ACET-INIT-EXCLUDE-LIST 

ACET-TJUST-GROUP-CODES 

ACET-ERROR-INIT 

ACET-INIT-EXPRESS-INSTALLED 

ACET-TJUST-KEYWORD 

ACET-ERROR-RESTORE 

ACET-INIT-EXPRESS-NOT-INSTALLED-MSG 

ACET-UCS-CAPTURE-VIEWPORTS 

ACET-EXPLODE 

ACET-INIT-FAS-LIB 

ACET-UCS-CMD 

ACET-FILE-BACKUP 

ACET-INIT-FORCE-LOAD-ARX-LIB 

ACET-UCS-GET 

ACET-FILE-BACKUP-DELETE 

ACET-INIT-GACET-LIB-DIR 

ACET-UCS-RESTORE-VIEWPORTS 

ACET-FILE-BACKUP-RESTORE 

ACET-INIT-PRODKEY 

ACET-UCS-SACET-Z 

ACET-FILE-FIND 

ACET-INSERT-ATTRIB-GET 

ACET-UCS-SET 

ACET-FILE-FIND-FONT 

ACET-INSERT-ATTRIB-MOD 

ACET-UCS-TO-OBJECT 

ACET-FILE-FIND-IMAGE 

ACET-INSERT-ATTRIB-SET 

ACET-UI-DRAG 

ACET-FILE-FIND-ON-PATH  

ACET-INSERT-SPACIAL-FILTER 

ACET-UI-ENTSEL 

ACET-FILENAME-ACAD-ROOT 

ACET-LAYER-LOCKED 

ACET-UI-FENCE-SELECT 

ACET-FILENAME-ASSOCIATED-APP 

ACET-LAYER-LOCKED-LIST 

ACET-UI-GACET-LONG-NAME 

ACET-FILENAME-DIRECTORY 

ACET-LAYER-UNLOCK-ALL 

ACET-UI-GETCORNER 

ACET-FILENAME-DIR-ON-PATH 

ACET-LIST-ASSOC-APPEND 

ACET-UI-GETFILE 

ACET-FILENAME-EXTENSION 

ACET-LIST-ASSOC-PUT 

ACET-UI-M-GACET-NAMES 

ACET-FILENAME-EXT-REMOVE 

ACET-LIST-ASSOC-REMOVE 

ACET-UI-POLYGON-SELECT 

ACET-FILENAME-PATH-REMOVE 

ACET-LIST-GROUP-BY-ASSOC 

ACET-UI-PROGRESS-DONE 

ACET-FILENAME-SUPPORTPATH-REMOVE 

ACET-LIST-INSERT-NTH 

ACET-UI-PROGRESS-INIT 

ACET-FILENAME-VALID

ACET-LIST-IS-DOTTED-PAIR 

ACET-UI-PROGRESS-SAFE 

ACET-FILE-OPEN 

ACET-LIST-ISORT 

ACET-UI-SINGLE-SELECT 

ACET-FILE-SYSTIME-COMPARE 

ACET-LIST-M-ASSOC 

ACET-UNDO-BEGIN 

ACET-FULL-DWGNAME 

ACET-LIST-PUT-NTH 

ACET-UNDO-END 

ACET-GENERAL-PROPS-GACET-PAIRS 

ACET-LIST-REMOVE-ADJACENT-DUPS 

ACET-UNDO-INIT 

ACET-GENERAL-PROPS-GET 

ACET-LIST-REMOVE-DUPLICATES 

ACET-UNDO-RESTORE 

ACET-GENERAL-PROPS-SACET-PAIRS 

ACET-LIST-REMOVE-NTH 

ACET-VBALOAD 

ACET-GENERAL-PROPS-SET 

ACET-LIST-SPLIT 

ACET-VIEWPORT-FROZEN-LAYER-LIST 

ACET-GEOM-ANGLE-TO-ELLIPSEANGLE 

ACET-LIST-TO-SS 

ACET-VIEWPORT-FROZEN-LAYER-LIST-SET 

ACET-GEOM-ANGLE-TRANS 

ACET-LSP-LOAD 

ACET-VIEWPORT-LOCK-SET 

ACET-GEOM-ARBITRARY-X 

ACET-LWPLINE-MAKE 

ACET-VIEWPORT-NEXT-PICKABLE 

ACET-GEOM-ARC-3P-D-ANGLE 

ACET-MENU-LOAD 

ACET-VIEWPORT-VPFREEZE 

ACET-GEOM-ARC-BULGE 

ACET-MENU-LOAD2 

ACET-WMFIN 

ACET-GEOM-ARC-CENTER 

ACET-PARTIAL-MENU-STATUS-GET 

ACET-XDATA-GET 

ACET-GEOM-ARC-D-ANGLE 

ACET-PARTIAL-MENU-STATUS-SET 

ACET-XDATA-SET 

ACET-GEOM-ARC-DELTA-ANGLE 

ACET-PATH-TO-LIST 

ACET-XREF-CPROJECT-PATH 

ACET-GEOM-ARC-POINT-LIST 

ACET-PLINE-IS-2D 

AI_APPLOADED 

ACET-GEOM-CALC-ARC-ERROR 

ACET-PLINE-MAKE 

BNS_ANNOTATION_SS 

ACET-GEOM-CROSS-PRODUCT 

ACET-PLINE-SEGMENT-LIST 

BNS_BLINK_AND_SHOW_OBJECT 

ACET-GEOM-DELTA-VECTOR 

ACET-PLINE-SEGMENT-LIST-APPLY 

BNS_BLK_MATCH 

ACET-GEOM-ELLIPSEANGLE-TO-ANGLE 

ACET-PLINES-EXPLODE 

BNS_BLKTBL_MATCH 

ACET-GEOM-ELLIPSE-ARC-LIST 

ACET-PLINES-EXPLODE-WIDTH-DATA-GET 

BNS_FILTER_MATCH 

ACET-GEOM-ELLIPSE-POINT-AT-ANGLE 

ACET-PLINES-REBUILD 

BNS_GET_ATT 

ACET-GEOM-ELLIPSE-POINT-AT-E-ANGLE 

ACET-PLINES-REBUILD-APPLY-WIDTHS 

BNS_GROUPS_SEL 

ACET-GEOM-ELLIPSE-POINT-LIST 

ACET-PLINES-REBUILD-SACET-ELEVATION 

BNS_GROUPS_UNSEL 

ACET-GEOM-ELLIPSE-TO-PLINE 

ACET-POINT-FLAT  

BNS_MOD_ATT 

ACET-GEOM-EXTENTS 

ACET-PREF-SUPPORTPATH-LIST 

BNS_SS_MOD 

ACET-GEOM-IMAGE-BOUNDS 

ACET-PSPACE-VIEWPORT-ENAME 

BNS_TBL_MATCH 

ACET-GEOM-IMAGE-CLIP-LIST 

ACET-R12-DXF-CONVERT 

BNS_TJUST 

ACET-GEOM-INSERT-CLIP-LIST 

ACET-REACTOR-EXISTS 

BNS_TRUNCATE_2_VIEW 

ACET-GEOM-INSERT-POINT-LIST 

ACET-REACTOR-REMOVE 

BNS_VP_ON_SCREEN 

ACET-GEOM-INTERSECTWITH