Assgarth

Użytkownik forum
  • Postów

    218
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Treść opublikowana przez Assgarth

  1. Proszę spróbować w ten sposób: (command "_lengthen" (car (entsel "\nWskaż obiekt do odczytu długości: "))) (getvar "perimeter") lub jeszcze lepiej, pobrać bibliotekę stąd: http://cad.pl/ftp/Pack/v1/CADPL-Pack-v1.lsp a następnie użyć polecenia: (cd:ACX_GetProp (car(entsel "\nWskaż obiekt: ")) '("Length" "Angle")) Dla LWPOLYLINE, trzeba by określić kąt dla wskazanego segmentu (w przypadku gdy nie jest to łuk). Ale to dopiero wówczas można zrobić, kiedy faktycznie okaże się konieczne. EDIT: lub też użyć funkcji Lee-Mac: (defun c:tlen ( / e i l s ) (if (setq s (ssget '( (0 . "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE") (-4 . "<NOT") (-4 . "<AND") (0 . "POLYLINE") (-4 . "&") (70 . 80) (-4 . "AND>") (-4 . "NOT>") ) ) ) (progn (setq l 0.0) (repeat (setq i (sslength s)) (setq e (ssname s (setq i (1- i))) l (+ l (vlax-curve-getdistatparam e (vlax-curve-getendparam e))) ) ) (princ "\nTotal Length: ") (princ (rtos l)) ) ) (princ) ) pozdrawiam
  2. Assgarth

    ZWCAD+ 2014 beta

    Ciekawe czy kiedyś ten link, zostanie do czegoś podpięty? :mrgreen: pozdrawiam
  3. Witam, kiedy można się spodziewać funkcji "_join" dla obiektów SPAJN? pozdrawiam
  4. Można jeszcze: (getvar "ACADVER") dla ZwCAD 2012 da nam "16.0i" dla ZwCAD 2012 + da nam "18.1" pozdrawiam
  5. Witam, kiedy i czy można spodziewać się cechy obiektu/warstwy takiej jak Transparent? pozdrawiam
  6. Assgarth

    HATCH

    Sęk w tym, że to nie musi być nawet z poziomu Lispa. Wystarczy narysować dwie pionowe linie, potem poziome i tak jak przedstawiłem wcześniej, pomniejszyć obszar widoku i wskazać ręcznie punkt gdzie ma powstać kreskowanie: pozdrawiam
  7. Assgarth

    HATCH

    Witam, nie bardzo rozumiem problemów z kreskowaniem w ZwCAD2012+ VERNUM = "2013.03.31(11367)"... Na poniższym przykładzie pokazuję o co chodzi: Do zakreskowania jest obszar prostokątny o pewnych rozmiarach, tyle że widok jest w pomniejszeniu (nie ma zoom na obiekt). Wówczas, przy prawidłowym wskazaniu punktu wewnątrz tego obszaru, pojawia się komunikat: "Przekroczono limit obiektów kreskowania". - po co się pojawia, skoro i tak kreskowanie następuje?? - jakie granice kreskowania, skoro jest to prostokąt - 4 linie max?? Da się to jakoś wyłączyć? Obecnie z automatu z poziomu VLisp, przez ten komunikat, kreskowanie jest skopane... użytkownik musi za każdym razem potwierdzić "OK". Sprawdzałem ten sam przypadek w innych CAD i wszystko działa prawidłowo (bez komunikatów). pozdrawiam
  8. Pojawia się komunikat: błąd: Wystąpił wyjątek: 0xC0000005 (Naruszenie dostępu) pozdrawiam
  9. Witam, sprawdziłem działanie ACAD_TABLESTYLE w najnowszej wersji ZwCAD2012+ SP2: (vl-catch-all-apply 'vla-AddObject (list (vla-item (vla-get-Dictionaries (vla-get-ActiveDocument (vlax-get-acad-object))) "ACAD_TABLESTYLE") "MyStyle" "ZcDbTableStyle")) i wygląda, że ta część działa prawidłowo. Pytanie zatem następujące: - jak nadać styl tekstom zawartym w tak utworzonym stylu tabeli? ; tName [sTR] - nazwa Stylu Nagłówka ; fTxtT [REAL] - wysokość tekstu nagłówka ; fTxtD [REAL] - wysokość tekstu danych ;; Set the text height for the Title, Header and Data rows (vla-SetTextHeight custObj acTitleRow fTxtT) (vla-SetTextHeight custObj (+ acDataRow acHeaderRow) fTxtD) ;; Set the text height and style for the Title row (vla-SetTextStyle custObj (+ acDataRow acHeaderRow acTitleRow) tName) Powyższe nie działa. Jak zatem dostać się do tych ustawień z poziomu VLISPa?
  10. Kiedy można spodziewać się wersji 2013.01.27(9513) do testów? Sprawdziłem działanie ACAD_TABLE pod wersją 2012.12.14(8707) i stabilność pracy pozostawia wiele do życzenia... Albo nie działa w ogóle, albo wywala całego ZwCADa w kosmos bez ostrzeżenia o błędach... wrrrr :???:
  11. Brzmi ciekawie i pięknie, ale jest jedno wielkie "ALE"... mianowicie ZwCAD z poziomu VisualLisp, nie obsługuje DBX, więc wszelkie próby powiązania rysunku z innymi, przeszukiwanie bazy danych DWG itp. odpada. Jest to obecnie dostępne tylko z poziomu VC++ czyli ZRX. pozdrawiam
  12. :cool: czemu lipa? Ja osobiście nie działam w żadnej branży, więc pomysłami tutaj rzucać nie będę. Niech się wypowiedzą Ci, którzy potrzebują jakiś konkretnych narzędzi. pozdrawiam
  13. Witam, jeśli chodzi o funkcje bazowe oraz gotowe narzędzia (za free) w LISP, to tutaj wszystko już się znajduje: http://forum.cad.pl/...lsp-t78161.html Baza ta jest stale rozwijana i poszerzana o kolejne funkcje. Fakt, że niektóre mogą nie znaleźć zastosowania w ZwCAD, i tylko na takich warto by się tutaj skupić, szukając alternatywnych rozwiązań. Choć już z doświadczenia wiem, że dla pewnych wersji ZwCAD, niektóre funkcje, nie znajdą rozwiązania, bo ich po prostu nie ma - patrz lista zgłoszonych błędów na tym forum z nazwą lub tagiem VisualLisp: http://forum.cad.inf...allisp-vba-zrx/ Tworzenie "nakładek", wymaga przede wszystkim sprecyzowania kilku kwestii: na które platformy CAD na którą wersję platformy CAD temat (branża) język programowania (bo sam LISP to będzie mało, więc od razu trzeba założyć VisualLisp oraz DCL ew. Diesel) czy powstaje dokumentacja a potem szczegóły: nazewnictwo funkcji przyjęcie sposobu definiowania zmiennych globalnych i lokalnych obsługa Rejestrów Windows itd. pozdrawiam, ZK
  14. Witam, u mnie sprawa wygląd tak, że w chwili "latania" kursorem po obszarze roboczym ZwCAD, procesor ma skaczące zużycie rzędu 5-22%: Wyłączenie podglądu Coordinates, niewiele pomaga. Nie jest to jednak ciągłe 25% Można jeszcze sprawdzić, czy zmiany parametrów w Opcje / Wyświetlanie, cokolwiek zmieniają. pozdrawiam.
  15. Witam, pojawia się zatem też pytanie, na jakim poziomie jest zużycie procesorów gdy ZwCAD nie jest włączony? Bo skoro jest stały poziom zużycia, bez względu na to co się wykonuje w programie, to to troszkę dziwnie wygląda. Otwieranie okien systemowych, to uruchamianie nowego procesu, więc powinien następować wzrost zużycia, a nie spadek do 0%. Sprawdzał Pan różnice w przypadku pracy na baterii oraz na kablu (bez baterii)? pozdrawiam
  16. Ewentualnie byłaby opcja z jedną linijką kodu w V-LISP: (vl-catch-all-apply 'vla-open (list (vla-get-documents (vlax-get-acad-object)) (findfile "c:/Drawing2.dwg"))) tylko dwie sprawy: 1. ścieżkę i nazwę pliku musisz sobie ustawić na sztywno (zmieniać w razie potrzeby); 2. na ZwCAD VERNUM = "2012.08.30(5622)", ta funkcja vlisp: 'vla-open nie działa... może w nowszej wersji będzie okey. pozdrawiam
  17. Spróbuj tego: http://www.cadtutor....-latest-drawing Lisp'a należy umieścić w liście plików startowych ZwCADa. Polecenie "_appload": pozdrawiam
  18. jaki jest tego sens, skoro wystarczy wybrać z menu File odpowiedni plik (jeden z kilku ostatnio otwieranych)?? pozdrawiam
  19. U mnie nadal występuje błąd: Command: (vl-catch-all-apply 'vla-AddObject (list (vla-item (vla-get-Dictionaries (vla-get-ActiveDocument (vlax-get-acad-object))) "ACAD_TABLESTYLE") "MyStyle" "ZcDbTableStyle")) #<%catch-all-apply-error%> Obstawiam, że sprawdzane było na tej najnowszej wersji, bo na mojej VERNUM = "2012.08.30(5622)" (read only), nie działa. pozdrawiam
  20. Witam, jeszcze jedna sprawa: jak utworzyć nowy styl dla Tabeli za pomocą VLispa? Command:(vl-catch-all-apply 'vla-AddObject (list (vla-Item (vla-get-Dictionaries (vla-get-ActiveDocument (vlax-get-acad-object))) "ACAD_TABLESTYLE") "MyStyle" "AcDbTableStyle")) #<%catch-all-apply-error%> a powinno być: Command: (vl-catch-all-apply 'vla-AddObject (list (vla-Item (vla-get-Dictionaries (vla-get-ActiveDocument (vlax-get-acad-object))) "ACAD_TABLESTYLE") "MyStyle" "AcDbTableStyle")) #<VLA-OBJECT IAcadTableStyle 0000000038ff21a8> pozdrawiam
  21. Dziękuję za podpowiedź. Teraz inna sprawa - samo tworzenie obiektu TABLE za pomocą VLisp'a. (vla-Addtable (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (vlax-3d-point '(0.0 0.0 0.0)) 4 3 20.0 100.0 ) ; error: Automation Error. Description was not provided. Nie rozumiem, dlaczego nie można utworzyć tego obiektu za pomocą Active-X. Poniżej za pomocą entmakex: (defun c:addTable (insPt numRows numColumns rowHeight columnWidth) (entmakex (append (list '(0 . "ACAD_TABLE") '(100 . "AcDbEntity") '(100 . "AcDbBlockReference") (cons 10 insPt) '(100 . "AcDbTable") (cons 91 numRows) (cons 92 numColumns) ) ((lambda (l) (repeat numRows (setq l (cons (cons 141 rowHeight) l))) ) nil ) ((lambda (l) (repeat numColumns (setq l (cons (cons 142 columnWidth) l))) ) nil ) ) ) ) np. (c:addTable (getpoint) 12 12 22 22) i wszystko działa. Rozumiem, że Active-X jeszcze nie jest dopracowany? pozdrawiam
  22. Witam, proszę o potwierdzenie błędu, czy braku możliwości edycji obiektu TABLE w ZwCAD2012+ (VERNUM = "2012.08.30(5622)"), z poziomu Visual Lispa. Przykładowy kod dodający nowy rekord w ZwCAD: Command: (cd:ACX_SetProp (car(entsel)) '(("Rows" . 4))) (("Rows" . #<%catch-all-apply-error%>)) AutoCAD: Command: (cd:ACX_SetProp (car(entsel)) '(("Rows" . 4))) (("Rows" . :vlax-true)) Funkcja biblioteczna: ; =========================================================================================== ; ; Zmienia cechy obiektu VLA / Sets the property of VLA-Object ; Obj [ENAME/VLA-Object] - entycja lub obiekt VLA / entity name or VLA-Object ; Lst [list] - lista cech par kropkowych / list of dotted pairs properties ; ------------------------------------------------------------------------------------------- ; ; (cd:ACX_SetProp (entlast) '(("LineType" . "BLA")("Color" . 1)("Layer" . "0"))) ; =========================================================================================== ; (defun cd:ACX_SetProp (Obj Lst) (if (= (type Obj) (quote ENAME)) (setq Obj (vlax-ename->vla-object Obj)) ) (if (vlax-write-enabled-p Obj) (mapcar (function (lambda (% / %1) (cons (car %) (if (vlax-property-available-p Obj (car %) T) (if (setq %1 (vl-catch-all-apply (quote vlax-put-property) (list Obj (car %) (if (vl-symbolp (cdr %)) (eval (cdr %)) (cdr %) ) ) ) ) %1 :vlax-true ) :vlax-null ) ) ) ) Lst ) ) ) Sprawdzając istnienie właściwości "Rows" dla obiektu TABLE, otrzymujemy odpowiedź pozytywną, więc powinno działać: Command: (vlax-property-available-p (vlax-ename->vla-object (car(entsel))) "Rows" nil) T Pozdrawiam, Assgarth
  23. Na tej stronie: http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Create-object-Open-Office-Error/td-p/2817346#.UMH6oYPaXQU jest przykład kodu w LISP, który pozwoli na wyświetlenie błędów związanych z podpinaniem obiektów OLE (Excel, OpenOffice, SQL). U mnie na przykład (posiadam LibreOffice), brakuje prawidłowego osadzenia obiektu metodą "Embedded", dlatego mam problem z uzyskaniem właściwej postaci tabelki, po jej aktualizacji - przy czym jest to wina LibreOffice, nie ZwCAD'a. Może dla użytkownika z OpenOffice, problem ten nie wystąpi. Testujcie, pozdrawiam
  24. Jest jednak coś, na co wcześniej nie zwróciłem uwagi (nie wprowadzałem więcej rekordów i kolumn), że zwiększając ilość danych w dokumencie, na rysunku nadal pozostaje miejsce na maksymalnie 5 rekordów i 4 kolumny :) No cóż.... no comments pozdrawiam
  25. Proponuję następujące rozwiązanie: w ZwCAD z menu wybieramy: a następnie tworzymy nowy obiekt OpenOffice - Arkusz kalkulacyjny: Przedstawiłem na rysunku kiedy jest źle, oraz jak jest dobrze. W ten sposób, obiekt nie jest Static, tylko Embedded i dwuklik pozwala na jego edycję. Nie od razu widać zmiany, jakie się wprowadzi w arkuszu, ale wystarczy jeszcze raz dwuklik zrobić i dane ładnie się aktualizują. Testowałem na "text excela 2.xls". pozdrawiam