Autolisp Script that search PNPGuid

Autolisp Script that search PNPGuid

gal.aG8RRW
Advocate Advocate
1,027 Views
8 Replies
Message 1 of 9

Autolisp Script that search PNPGuid

gal.aG8RRW
Advocate
Advocate

hey,

I am trying to create shortcut on searching PnPGuid on QSELECT.

I always need to open the qselect menu and select if its support or connector etc..

its done 1 by 1 aswell.

if someone can help to create script i will be really thankfull!

 

and i want to learn how to make autolisp if there is a good tutorial

 

Gal.

 

0 Likes
Accepted solutions (2)
1,028 Views
8 Replies
Replies (8)
Message 2 of 9

DVaquand
Mentor
Mentor

Hello

 

Here are two small programs in AutoLISP :

AP3D_ExportGuid_3D to export GUID codes of 3D objects
AP3D_ExportGuid_P&ID to export GUID codes of P&ID objects

 

These two commands are grouped together in the "AP3D_ExportPnpGuid.LSP" file.

 

Note: no error handling has been added to the program.

 

A screencast shows you the process

https://autode.sk/3yykbfe

 

== French ==

 

Voici deux petits programmes en AutoLISP

 

AP3D_ExportGuid_3D pour exporter les codes GUID des objets 3D
AP3D_ExportGuid_P&ID pour exporter les codes GUID des objets P&ID

 

Ces deux commandes sont regroupées dans le fichier "AP3D_ExportGuid.LSP"

 

Note : il n'a pas été ajouté dans le programme une gestion d'erreur.

 

Un screencast vous montre le processus

https://autode.sk/3yykbfe

 

Source

 

;;; ============================================
;;; AP3D_ExportPnPGuid
;;; Dominique VAQUAND 12.03.2023
;;; www.dovaq.fr
;;; ============================================

; =======================
; Export PnpGuid pour la partie 3D

; ============================

(defun c:AP3D_ExportGUID_3D ( / SelectionObjet index Objet NomFichier Fichier)

(vl-load-com)
; sélection avec filtres sur les objets 3D Plant, exclus les annotations iso
; les objets XREF ne sont pas sélectionnés
(setq SelectionObjet (ssget (list (cons 0 "ACPPPIPE,ACPPPIPEINLINEASSET,ACPPSUPPORT,ACPPEQUIPMENT"))))

(if SelectionObjet

(progn

; Nom du fichier au format CSV Excel
(setq NomFichier (getfiled "Fichier export" "" "csv" 1))

(setq Fichier (open NomFichier "w"))

(setq index 0)

(repeat (sslength SelectionObjet)

(setq Objet (vlax-ename->vla-object (ssname SelectionObjet index)))

; affichage des données sur l'écran texte

(princ (strcat "\nObjet => GUID_3D : " (vlax-get-property Objet "PnPClassName") " | PnpGuid : " (vlax-get-property Objet "PnPGuid")))

; écriture des données dans le fichier CSV
(princ (strcat (vlax-get-property Objet "PnPClassName") ";" (vlax-get-property Objet "PnPGuid") "\n") Fichier)


(setq index (1+ index))

); repeat

(close fichier)

) ;progn
); if

(princ)

)

;===============================

; Export PnpGuid pour la partie P&ID

; ==============================

(defun c:AP3D_ExportGUID_P&ID ( / SelectionObjet index Objet NomFichier Fichier)

(vl-load-com)

; Sélection des objets avec filtres sr les objets P&ID Plant
(setq SelectionObjet (ssget (list (cons 0 "SLINE,ACPPASSET"))))

(if SelectionObjet

(progn

; Nom du fichier d'export
(setq NomFichier (getfiled "Fichier export" "" "csv" 1))

(setq Fichier (open NomFichier "w"))

(setq index 0)

(repeat (sslength SelectionObjet)

(setq Objet (vlax-ename->vla-object (ssname SelectionObjet index)))

; Affichage des données dans l'écran texte
(princ (strcat "\nObjet => GUID_P&ID : " (vlax-get-property Objet "Description") " | PnpGuid : " (vlax-get-property Objet "PnPGuid")))

; écriture des données dans le fichier au format CSV Excel
(princ (strcat (vlax-get-property Objet "Description") ";" (vlax-get-property Objet "PnPGuid") "\n") Fichier)

(setq index (1+ index))

); repeat


(close fichier)

) ;progn

); if

 

 

Cordialement
Dominique VAQUAND
www.dovaq.fr

Cette publication vous a-t-elle été utile ? N’hésitez pas à attribuer la mention J’aime à cette publication.
Avez-vous obtenu la réponse à votre question ? Cliquez ensuite sur le bouton ACCEPTER LA SOLUTION.

EESignature

Message 3 of 9

gal.aG8RRW
Advocate
Advocate
hey,
thanks for the script but i don't want to export i want to search in the drawing.
for knowing what pnpguid i use navisworks but i want to search the spesific part and highlight it like using qselect command.

0 Likes
Message 4 of 9

DVaquand
Mentor
Mentor
Accepted solution

Hello

Here is a new "AP3D_RechercheDepuisGUID_3D" command in the "AP3D_RechercheDepuisGUID_3D.lsp" file which allows you to select a Plant 3D object from its "PnpGuid" code.

 

== French ==

 

Voici une nouvelle commande "AP3D_RechercheDepuisGUID_3D" dans le fichier "AP3D_RechercheDepuisGUID_3D.lsp" qui permet de sélectionner un objet Plant 3D depuis son code "PnpGuid".

 

;;;=================================================
;;; Selection objet Plant 3D depuis son code PnpGuid
;;; Dominique VAQUAND 13.03.2023
;;; www.dovaq.fr
;;; ================================================


(defun c:AP3D_RechercheDepuisGUID_3D ( / SelectionObjet index Objet JS ZoomMinObj ZoomMaxObj minObj maxObj PasseOK)

(vl-load-com)

(setq NumeroGuid (getstring "\nNumero PnpGuid : "))

; sélection avec filtres sur les objets 3D Plant, exclus les annotations iso
; les objets XREF ne sont pas sélectionnés
(setq SelectionObjet (ssget "x" (list (cons 0 "ACPPPIPE,ACPPPIPEINLINEASSET,ACPPSUPPORT,ACPPEQUIPMENT"))))

(if SelectionObjet

(progn


(setq index 0)

(repeat (sslength SelectionObjet)

(setq Objet (vlax-ename->vla-object (ssname SelectionObjet index)))

(if (= (vlax-get-property Objet "PnPGuid") NumeroGuid)

(progn

(setq PasseOK T)

(vla-getboundingbox Objet 'minObj 'maxObj)
(setq
ZoomMinObj (vlax-safearray->list minObj)
ZoomMaxObj (vlax-safearray->list maxObj)

); setq

(command "_Zoom" "_W" ZoomMinObj ZoomMaxObj)

(setq JS (ssadd))
(ssadd (ssname SelectionObjet index) js)
(sssetfirst nil jS)

);progn
);if

(setq index (1+ index))

); repeat


) ;progn
); if

(if (= PasseOK nil)
(alert "Numéro PnpGuid non trouvé.")
)

(princ)

)

 

Cordialement
Dominique VAQUAND
www.dovaq.fr


Si mon message propose une solution, veuillez cliquer sur "Accepter comme solution"
If my post offers a solution, please click "Accept as Solution"

 

Cordialement
Dominique VAQUAND
www.dovaq.fr

Cette publication vous a-t-elle été utile ? N’hésitez pas à attribuer la mention J’aime à cette publication.
Avez-vous obtenu la réponse à votre question ? Cliquez ensuite sur le bouton ACCEPTER LA SOLUTION.

EESignature

Message 5 of 9

gal.aG8RRW
Advocate
Advocate
Accepted solution
Thank you buddy!!! Working Perfect!
0 Likes
Message 6 of 9

gal.aG8RRW
Advocate
Advocate
how can i get only the princ that on commend line without CSV ?
0 Likes
Message 7 of 9

DVaquand
Mentor
Mentor

Hello


Here is a new program "AP3D_ListePnpGUID.lsp" which has the commands:

 

AP3D_ListeGUID_3D to display the GUID numbers of the selected 3D components
AP3D_ListeGUID_P&ID to display the GUID numbers of the selected P&ID components

 

Result on 3D components
Objet => GUID_3D : Pipe | PnpGuid : e2877575-0d56-40cd-b2e9-20e97edcda23
Objet => GUID_3D : Flange | PnpGuid : a6617c60-0263-4b76-9a5b-99f2221583f6
Objet => GUID_3D : Elbow | PnpGuid : 4b1613b7-b455-40d7-9412-b43815bd3fd0
Objet => GUID_3D : Elbow | PnpGuid : 21077602-a257-4d70-add3-f17b5010ecde
Objet => GUID_3D : Pipe | PnpGuid : 1d48549c-8750-4f88-b4a9-74f5b9bd37aa
Objet => GUID_3D : Flange | PnpGuid : f9425212-d098-43f2-94b6-bb4c1a0dc5db
Objet => GUID_3D : Flange | PnpGuid : 6bd44503-c5cc-48e5-a03b-d3a114fa9613
Objet => GUID_3D : Pipe | PnpGuid : 61761b09-979d-46b2-8687-ad647e4b5cc7
Objet => GUID_3D : Valve | PnpGuid : ecd85326-8967-488c-ba86-ee6b5892d543
Objet => GUID_3D : Elbow | PnpGuid : 34eb0d88-67cf-46b0-8721-e9544434e26b


Result on P&ID components
Objet => GUID_P&ID : ROTARY MOTOR | PnpGuid : ff74b457-3b6b-4e8f-8700-7d3b57885cf7
Objet => GUID_P&ID : CONTROL VALVE | PnpGuid : 4ff5ad7e-f836-4f54-9288-58878091df9c
Objet => GUID_P&ID : PRIMARY LINE SEGMENT | PnpGuid : 5f1b8d50-7693-4a69-86f6-b08d56102f55
Objet => GUID_P&ID : FLOW ARROW | PnpGuid : 235e3daf-0b72-4683-aaa4-765750387ae5
Objet => GUID_P&ID : FLOW ARROW | PnpGuid : 5ae5bd4c-78df-4719-b37a-796012b008d1
Objet => GUID_P&ID : GATE VALVE | PnpGuid : c031273c-0ad0-4711-8431-b18b58e2aec3

 

== French ==

 

Voici un nouveau programme "AP3D_ListePnpGUID.lsp" qui possède les commandes :

 

AP3D_ListeGUID_3D pour afficher les numéros GUID des composants 3D sélectionnés
AP3D_ListeGUID_P&ID pour afficher les numéros GUID des composants P&ID sélectionnés

 

Cordialement
Dominique VAQUAND
www.dovaq.fr


Si mon message propose une solution, veuillez cliquer sur "Accepter comme solution"
If my post offers a solution, please click "Accept as Solution"

Cordialement
Dominique VAQUAND
www.dovaq.fr

Cette publication vous a-t-elle été utile ? N’hésitez pas à attribuer la mention J’aime à cette publication.
Avez-vous obtenu la réponse à votre question ? Cliquez ensuite sur le bouton ACCEPTER LA SOLUTION.

EESignature

0 Likes
Message 8 of 9

gal.aG8RRW
Advocate
Advocate

galaG8RRW_0-1681799138485.png

hey, i get this error 🙂

0 Likes
Message 9 of 9

gal.aG8RRW
Advocate
Advocate

hey i found the problem sorry thanks for you super help !!!

0 Likes