FastFiber

Super tip : Dynamisch block leest hoogte uit !

Gestart door cadtools@gmail.com, wo 18 02 2009, 11:14:28

Vorige topic - Volgende topic

cadtools@gmail.com

Beste (HofCAD),

Terecht verdient dit tooltje een dikke 9 uit 10 !!
Bijgevoed een manier om de hoogte uit te lezen en als attributen in een dynamisch te plaatsen.
Op zich werkt deze goed maar hij heeft een kleine tekortkoming.
Het leest nu (alleen) de harde waarde van insertionpoint (WCS).
Je moet dus altijd alles op y=0 tekenen, doet niet iedereen.
Kun jij dit veranderen dat hij dit punt omzet /uitleest van de locaal ingestelde Y waarde van het user definied assenstelsel.

De werkwijze is dan als volgt. UCS instellen op NAP lijn=> update blocks
Ik hoop dat jouw dit lukt, anders iemand anders ?..

Bij voorbaat bedankt voor het meekijken
Hans Lammerts

achtergrond tool
http://www.dailyautocad.com/autocad/autolisp-method-of-giving-elevation-symbols-in-autocad/

omzetten inspt naar insptucs met (trans .. functie) lukt me niet..

.........
..........
              InsPt (vla-get-InsertionPoint obj)
            )

            (setq InsPt
              (vlax-safearray->list (vlax-variant-value Inspt))
...........
...........

HofCAD

#1
Citaat van: cadtools@gmail.com op wo 18 02 2009, 11:14:28
omzetten inspt naar insptucs met (trans .. functie) lukt me niet..
.........
..........
              InsPt (vla-get-InsertionPoint obj)
            )
            (setq InsPt
              (vlax-safearray->list (vlax-variant-value Inspt))
...........
...........
Beste Cadtools,

Ik heb nog niet zoveel tijd gehad om naar dit probleem te kijken,
maar weet je het wel zeker dat het probleem bij de trans functie lig
Ik krijg in InsptUcs wel de Gebruikers coordinaten.

(defun c:test()
(vl-load-com)
(setq e (car (entsel "selecteer")))
(setq obj (vlax-ename->vla-object e))
(setq ObjID (vla-get-ObjectID obj)InsPt (vla-get-InsertionPoint obj))
(setq insptW (vlax-safearray->list (vlax-variant-value Inspt)))
(princ "\nWereld coordinaten    : ")(princ insptW)
(setq insptUcs (trans (vlax-safearray->list (vlax-variant-value Inspt)) 0 1))
(princ "\nGebruikers coordinaten: ")(princ insptUcs)
(textscr)
(princ)
)

Ik verwacht veel eerder dat het ligt aan de regel met InsertionPoint, omdat
het insertionPoint altijd in Wereld coordinaten is.
          (setq YVal  (strcat "%<\\AcObjProp Object(%<\\_ObjId "
                              (vl-princ-to-string ObjID)
                              ">%).InsertionPoint>%"
          ))


Met vriendelijke groet, HofCAD CSI.
ACADcadabra

cadtools@gmail.com

#2
Hoi HofCAD
Ik zal het eens testen.
Ik had het ook eens de mannen van theswamp voorgelegd.
Zij kwamen hiermee http://www.theswamp.org/index.php?topic=27506.0
Reuze bedankt voor je input.
De uiteindelijke code post ik later nog wel als het in kannen en kruiken is...

FastFiber