CADsite forum

AutoCAD => Autolisp => Topic gestart door: cadtools@gmail.com op di 19 07 2016, 13:10:45

Titel: Image met standaardwaarde inladen
Bericht door: cadtools@gmail.com op di 19 07 2016, 13:10:45
Ik heb mijn default routine om images nu aangepast dat deze standaard de fade waarde op 50% zet.
Dat vind ik wel handig zodat deze duidelijk als onderleggers zichtbaar zijn.
Aangezien fade geen property is die via lisp handig te bewerken is doe ik het met een command call.
Ik vroeg me toch even af of iemand een handige manier/betere manier zou kunnen bedenken..



(defun C:IM ()
  (progn
    (initdia)
   ; (updatexrefpath)
    (command ".classicimage" pause pause)
    (command "-imageadjust" "l" "" "fade" "50" "")
    (command "draworder" "l" "" "b")
))
Titel: Re: Image met standaardwaarde inladen
Bericht door: gery op wo 20 07 2016, 15:41:11
m.b.v. vla-put-ImageVisibility misschien?
Titel: Re: Image met standaardwaarde inladen
Bericht door: EddyBeerke op do 21 07 2016, 09:21:24
Dit zijn de eigenschappen van een IAcadRasterImage:
Select object: ; IAcadRasterImage: AutoCAD Raster Interface
; Property values:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 00000001401e3f00>
;   Brightness = 50
;   ClippingEnabled = -1
;   Contrast = 50
;   Document (RO) = #<VLA-OBJECT IAcadDocument 0000000049322a48>
;   EntityTransparency = "ByLayer"
;   Fade = 0
;   Handle (RO) = "25BA"
;   HasExtensionDictionary (RO) = 0
;   Height (RO) = 886.0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0000000044f259a8>
;   ImageFile = "E:\\Data\\test.jpg"
;   ImageHeight = 1.26506
;   ImageVisibility = -1
;   ImageWidth = 0.976637
;   Layer = "0"
;   Linetype = "ByLayer"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   Material = "ByLayer"
;   Name = "Test"
;   ObjectID (RO) = 42
;   ObjectName (RO) = "AcDbRasterImage"
;   Origin = (104078.0 424460.0 0.0)
;   OwnerID (RO) = 43
;   PlotStyleName = "ByLayer"
;   Rotation = 0.0
;   ScaleFactor = 5.39653
;   ShowRotation = -1
;   transparency = 0
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 0000000044f25b80>
;   Visible = -1
;   Width (RO) = 684.0
; Methods supported:
;   ArrayPolar (3)
;   ArrayRectangular (6)
;   ClipBoundary (1)
;   Copy ()
;   Delete ()
;   GetBoundingBox (2)
;   GetExtensionDictionary ()
;   GetXData (3)
;   Highlight (1)
;   IntersectWith (2)
;   Mirror (2)
;   Mirror3D (3)
;   Move (2)
;   Rotate (2)
;   Rotate3D (3)
;   ScaleEntity (2)
;   SetXData (2)
;   TransformBy (1)
;   Update ()

De oplossing is dus eigenlijk heel simpel:
(vl-load-com)
(defun c:vla-Immage_Fade (/ e o)
(setq e (car (entsel)))
(setq o (vlax-ename->vla-object e))
(vla-put-fade o 50)
(princ)
) ;_ end of defun
Titel: Re: Image met standaardwaarde inladen
Bericht door: cadtools@gmail.com op do 21 07 2016, 23:02:31
 :vreegoe: