Recente berichten

#11
Autolisp / Re: Dynamic blocks kopiëren
Laatste bericht door Reimer - do 15 05 2025, 20:43:06
Ik moest ook even puzzelen maar ben er denk ik uit. Lee Mac schrijft bij de uitleg dat zijn functie werkt wanneer je het volgende ingeeft: (LM:CopyBlockDefinition "OldBlock" "NewBlock")
Ik wil liever een bestaand block selecteren dan een naar intypen. Het opvragen van de naam van een dynamic block is net wat lastiger dan van een gewoon block. Gelukkig heeft Lee Mac daar al een functie voor geschreven.
Ik heb zijn functies bij elkaar gezet en zelf een stukje code bijgeschreven. Als het goed is werkt het onderstaande wanneer je Copyb start. Bij mij werkt het!

;; Copy Block Definition  -  Lee Mac
;; Duplicates a block definition, with the copied definition assigned the name provided.
;; blk - [str] name of block definition to be duplicated
;; new - [str] name to be assigned to copied block definition
;; Returns the copied VLA Block Definition Object, else nil
(defun LM:CopyBlockDefinition ( blk new / abc app dbc dbx def doc rtn vrs )
    (setq dbx
        (vl-catch-all-apply 'vla-getinterfaceobject
            (list (setq app (vlax-get-acad-object))
                (if (< (setq vrs (atoi (getvar 'acadver))) 16)
                    "objectdbx.axdbdocument" (strcat "objectdbx.axdbdocument." (itoa vrs))
                )
            )
        )
    )
    (cond
        (  (or (null dbx) (vl-catch-all-error-p dbx))
            (prompt "\nUnable to interface with ObjectDBX.")
        )
        (  (and
                (setq doc (vla-get-activedocument app)
                      abc (vla-get-blocks doc)
                      dbc (vla-get-blocks dbx)
                      def (LM:getitem abc blk)
                )
                (not (LM:getitem abc new))
            )
            (vlax-invoke doc 'copyobjects (list def) dbc)
            (vla-put-name (setq def (LM:getitem dbc  blk)) new)
            (vlax-invoke dbx 'copyobjects (list def) abc)
            (setq rtn (LM:getitem abc new))
        )
    )
    (if (= 'vla-object (type dbx))
        (vlax-release-object dbx)
    )
    rtn
)

;; VLA-Collection: Get Item  -  Lee Mac
;; Retrieves the item with index 'idx' if present in the supplied collection
;; col - [vla]    VLA Collection Object
;; idx - [str/int] Index of the item to be retrieved
(defun LM:getitem ( col idx / obj )
    (if (not (vl-catch-all-error-p (setq obj (vl-catch-all-apply 'vla-item (list col idx)))))
        obj
    )
)

;; Effective Block Name  -  Lee Mac
;; ent - [ent] Block Reference entity
(defun LM:al-effectivename ( ent / blk rep )
    (if (wcmatch (setq blk (cdr (assoc 2 (entget ent)))) "`**")
        (if
            (and
                (setq rep
                    (cdadr
                        (assoc -3
                            (entget
                                (cdr
                                    (assoc 330
                                        (entget
                                            (tblobjname "block" blk)
                                        )
                                    )
                                )
                              '("AcDbBlockRepBTag")
                            )
                        )
                    )
                )
                (setq rep (handent (cdr (assoc 1005 rep))))
            )
            (setq blk (cdr (assoc 2 (entget rep))))
        )
    )
    blk
)

;; Functie door Reimer om de routine van Lee Mac te laten werken.
;;
(defun c:CopyB ( / OLDBLOCK OLDNAME NEWNAME)
  (prompt "\nSelecteer een blok om te kopiëren: ")
  (setq OLDBLOCK (car (entsel)))
  (if (and OLDBLOCK (= (cdr (assoc 0 (entget OLDBLOCK))) "INSERT"))
    (progn
      (setq OLDNAME (LM:al-effectivename OLDBLOCK))
      (setq NEWNAME (strcat OLDNAME "_1"))
      (while (tblsearch "BLOCK" NEWNAME)
        (setq NEWNAME (strcat NEWNAME "_1"))
      )
      (LM:CopyBlockDefinition OLDNAME NEWNAME)
      (princ (strcat "\nBlock '" OLDNAME "' gekopieerd als '" NEWNAME "'."))
    )
    (if (not OLDBLOCK)
      (prompt " Geen object geselecteerd.")
      (prompt " Selectie is geen block.")
    )
  );_if
  (print)
)
#12
AutoCAD probleem / Re: 2026 - Base from model wer...
Laatste bericht door julien - di 13 05 2025, 11:53:35
Het gaat over een educational versie.
Installeren kan ik niet zelf, alles is daar behoorlijk dicht getimmerd.
#13
AutoCAD probleem / Re: 2026 - Base from model wer...
Laatste bericht door jo-king - di 13 05 2025, 10:17:18
even in je manage.autodesk.com portaal de inventor extension downloaden en op een usb-stickje zetten... :vreegoe:

ik stel me wel even de vraag, hoe die autodesk software dan de genuine check doet?
normaal moet je toch minstens 1 keer per maand eventjes online gaan om de licentie te checken?

#14
AutoCAD probleem / Re: 2026 - Base from model wer...
Laatste bericht door julien - ma 12 05 2025, 16:26:28
Dat zal het zijn denk ik, bedankt!!
Nu hopen dat de verantwoordelijke dit snel in orde kan brengen.

Dit kan niet automatisch geïnstalleerd worden omdat er op die locatie geen internet is. (jaja, er bestaan nog zo'n locaties  :mrgreen: )
#15
AutoCAD probleem / Re: Sneltoetsen traag (opgelos...
Laatste bericht door jo-king - ma 12 05 2025, 11:37:58
De opmerking van Eddybeerke lijkt me volledig terecht;
misschien best even je autocad profiel resetten. Als de PGP file niet gevonden wordt, lijkt me er iets mogelijks kritiek gebeurt te zijn.
#16
AutoCAD probleem / Re: 2026 - Base from model wer...
Laatste bericht door jo-king - ma 12 05 2025, 11:36:02
deze functie spreekt de Inventor-motor aan; is deze geinstalleerd?
knowledge Autodesk
AutoCAD 2024 and above
The installation of Inventor Interoperability should be initiated automatically if a respective drawing is opened or the VIEWBASE command is being used. It can be also found on the Autodesk Account

waarschijnlijk wordt deze functie niet automatisch geïnstalleerd omdat de rechten niet toegewezen zijn aan de gebruiker....
#17
Autolisp / Re: Dynamic blocks kopiëren
Laatste bericht door julien - ma 12 05 2025, 09:42:14
 :mrgreen:
Ik stelde dit voor om misschien de lisp overbodig te maken.
#18
Autolisp / Re: Dynamic blocks kopiëren
Laatste bericht door Jacob - ma 12 05 2025, 08:50:06
Ha ha, ik schaam me.  :oops:
Visibility gebruik ik al jaren, maar wist niet dat het Visibility State heet.

Maar hij geeft een foutmelding op het commando die in de lisp staat, niet op het block.
#19
AutoCAD probleem / 2026 - Base from model werkt n...
Laatste bericht door julien - za 10 05 2025, 14:26:00
Op school hebben ze de laatste versie geïnstalleerd en kunnen we geen layout meer maken van een 3D object.
Zelfs een simpele kubus lukt niet.
Werkwijze:
3D kubus in model
naar layout gaan en klikken op Base, optie 'from model'.

Nu bevriest autocad compleet en is 't gedaan met de fun.

Ik vind hier online niets over terug, zijn er nog die dit tegenkomen?
#20
Autolisp / Re: Dynamic blocks kopiëren
Laatste bericht door julien - vr 09 05 2025, 10:38:36
Een dynamisch block kan verschillende vormen hebben.
Je kan er "zichtbaarheid" aan toevoegen. Dan kan je kiezen wat wel en wat niet zichtbaar is per instantie van hetzelfde block.

Ik heb er een handleiding voor geschreven in:
https://cadsite.be/cursus/les_4/
Onderaan bespreek ik kort een stukje over visibility state.