Recommended Posts

Posted (edited)

Witam.

Po lekturze ostatniego wpisu Kojacka na jego blogu chciałem sprawdzić działanie c:dim-sf na ZwCAD, który krzyknął że nie zna takiej funkcji jak w temacie.

Czy jest w ZwCAD jakiś odpowiednik lispowiej funkcji (getpropertyvalue). To samo dotyczy funkcji setpropertyvalue, dumpallproperties i ispropertyreadonly. Ewentualnie czy są plany ich wprowadzenia?

 

Edited by perlon
  • 8 months later...
Posted

Tak, sprawdziliśmy przed chwilą informacje odnośnie tej funkcji.

Niestety w najbliższym czasie nie ma planu ich wprowadzenia.

Czy ta funkcja jest potrzeba do "wizualnej kontroli ustawień skali", czy do czegoś innego?

Może bylibyśmy w stanie pomóc jakoś inaczej?

Posted (edited)

Kol. Kojacek prezentował kilka lispów dot. wymiarów. Między innymi

https://kojacek.wordpress.com/2019/02/17/o-dimscale/comment-page-1/?unapproved=652&moderation-hash=f14d723e1826eb2f92424a6b02c589ef#comment-652

gdzie używa funkcji getpropertyvalue. Zresztą do odczytu różnych właściwości.  Konkretnie chodziło o właściwość DimScale ze stylu wymiarowania odczytywana w taki sposób :

  (getpropertyvalue
    (tblobjname "DIMSTYLE" (cdr (assoc 3 (entget Ent))))
    "DimScale"
  )

Próbowałem do zastosować w ZwCAD'zie. Zamieniłem tą linijkę na odczyt kodu DXF

(cdr (assoc 40 (entget (tblobjname "DIMSTYLE" (cdr (assoc 3 (entget Ent)))))))

Wydaje się jednak, że getpropertyvalue jest bardziej eleganckie i lepiej się to czyta. Ustawianie właściwości za pomocą setpropertyvalu jest również szybsze niż sklejanie kodów DXF w entmod'zie. 

Można też stosować (vlax-get-property ...) i (vlax-put-property ...) ale w tym konkretnym przypadku vlax-get-property nie zwracała w ogóle właściwości DimScale stylu wymiarowania.

Na marginesie funkcja vlax-dump-object wywołana dla wymiaru zwraca taką listę:

; Property values:
;   AltRoundDistance = 0.0
;   AltSuppressLeadingZeros = 0
;   AltSuppressTrailingZeros = 0
[...]
;   DimLineInside = 0
;   DimTxtDirection = 
;   Document (RO) = #<VLA-OBJECT  IZcadDocument 1cbd6b48>
;   EntityName (RO) = "AcDbRotatedDimension"
;   EntityTransparency = 
[...]
;   TrueColor = #<VLA-OBJECT  IZcadZcCmColor 1cbc86c0>
;   UnitsFormat = 2
;   VerticalTextPosition = 1
;   Visible = -1

W szczególności właściwość DimTxtDirection jest na liście, ale nie da się jej odczytać funkcją vlax-get-property podobnie jak jeszcze kilka innych. Tak jakby była definicja ale nie było gettera i settera dostępowego.

Edited by perlon

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...